- 相關(guān)推薦
2017年最新C語言考題帶答案
謙虛是學(xué)習(xí)的朋友,自滿是學(xué)習(xí)的敵人。以下是小編為大家搜索整理2017年最新C語言考題及答案,希望能給大家?guī)韼椭?更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
一、選擇題((1)-(40)每小題1分, (41)-(50)每小題2分, 共60分)
下列各題 A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)通常所說的主機(jī)主要包括
A.CPU
B.CPU和內(nèi)存
C.CPU、內(nèi)存與外存
D.CPU、內(nèi)存與硬盤
(2)在微機(jī)系統(tǒng)中,最基本的輸入輸出模塊BIOS存放在
A.RAM中
B.ROM中
C.硬盤中
D.寄存器中
(3)一個(gè)24*24點(diǎn)陣的漢字字形信息所占的字節(jié)數(shù)為
A.2
B.24
C.32
D.72
(4)bit的意思是
A.字
B.字長
C.字節(jié)
D.二進(jìn)制位
(5)某學(xué)校的工資管理程序?qū)儆?/p>
A.系統(tǒng)程序
B.應(yīng)用程序
C.工具軟件
D.文字處理軟件
(6)與十六進(jìn)制數(shù)BB等值的十進(jìn)制數(shù)是
A.187
B.188
C.185
D.186
(7)設(shè)一張軟盤已染上病毒,能清除病毒的措施是
A.刪除該軟盤上的所有文件
B.格式化該軟盤
C.刪除該軟盤上的所有可執(zhí)行文件
C.刪除該軟盤上的所有批處理文件
(8)一張3.5英寸雙面高密度軟盤片的容量為
A.360KB
B.720KB
C.1.44MB
D.1.2MB
(9)與二進(jìn)制小數(shù)0.1等值的十六進(jìn)制小數(shù)為
A.0.1
B.0.2
C.0.4
D.0.8
(10)DOS系統(tǒng)的熱啟動(dòng)與冷啟動(dòng)的不同之處為熱啟動(dòng)時(shí)
A.不檢測(cè)鍵盤、處設(shè)接口與內(nèi)存
B.不提示用戶輸入日期與時(shí)間
C.不用裝入COMMAND.COM文件
D.不能從軟盤啟動(dòng)
(11)為了將磁盤上的文件K1,K2,K3,依次連接在文件K4的后面,應(yīng)使用命令
A.COPY K1+K2+K3 K4
B.COPY K1+K2+K3+K4
C.COPY K1+K2+K3+K4 K4
D.COPY K4+K1+K2+K3
(12)下列文件名中可以作為批處理文件名的是
A.AUTOEXC.C
B.AUTOEXEC
C.ATX.BAT
D.AUTO.TXT
(13)要打印輸出當(dāng)前盤的根目錄下所有文件與子目錄清單,應(yīng)使用命令
A.DIR \ >PRN
B.TYPE \ >PRN
C.DIR >PRN
C.TYPE >PRN
C.DIR >PRN
D.TYPE >PRN
(14)設(shè)可執(zhí)行文件ABC.EXE所需要的本該由鍵盤輸入的數(shù)據(jù)已經(jīng)按格式存放在文件XYZ中,并要求執(zhí)行結(jié)果放在XYZ中輸入數(shù)據(jù)的后面。下列命令中正確的是
A.ABCXYZ
B.ABC>XYZ
C.ABC D.ABC>>XYZ
(15)設(shè)當(dāng)前盤中某一目錄路徑為\A\B\C,當(dāng)前目錄為\A。下列命令中肯定出錯(cuò)的是
A.MD \A\C
B.CD..
C.MD \A\B\A
D.MD \A\B
(16)設(shè)A盤的目錄結(jié)構(gòu)如下:
根目錄
│
┌────┬────┬──┴───┬─────┬────┐
│ │ │ │ │ │
ABC D1子目錄 DX.C Q.DAT D2子目錄 A.FOR
│ │
┌────┬┴──┬───┐ ┌─────┼────┐
│ │ │ │ │ │ │
B.PAS D3子目錄 Y.BAS A.C A1.C D4子目錄 XYZ.C
│
┌───┬──┴─┬───┐
│ │ │ │
QR.C NA.C A.TXT B.C
如果當(dāng)前盤為C盤,A盤的當(dāng)前目錄為\D2,則下列對(duì)A盤上文件QR.C的指定中,合法的是
A.\D2\D4\QR.C
B.D4\QR.C
C.A:D4\QR.C
D.A:D2\D4\QR.C(17)下列DOS命令中,有錯(cuò)誤的是
A.TYPE AAB.FOR>CON
B.TYPE ? AB.FOR
C.COPY *.C CON
D.COPY CON PRN
(18)設(shè)當(dāng)前盤為A盤,為了將當(dāng)前盤當(dāng)前目錄下的文件AB1.TXT連接在C盤根目錄下的文件XYZ.TXT的后面,正確的命令是
A.COPY C:\XYZ.TXT+AB1.TXT
B.COPY AB1.TXT>>C:\XYZ.TXT
C.TYPE AB1.TXT>C:\XYZ.TXT
D.AB1.TXT+C:\XYZ.TXT>C:\XYZ.TXT
(19)下列命令中合法的是
A.DISKCOPY A: A:
B.DISKCOPY A: C:
C.DISKCOPY C: A:
D.DISKCOPY C: D:
(20)設(shè)當(dāng)前盤中某一目錄路徑為\A\B\C\D\XU,當(dāng)前目錄為\A。要將根目錄下擴(kuò)展名為.C的所有文件復(fù)制到當(dāng)前目錄下,并將擴(kuò)展名改為.FOR,應(yīng)使用命令
A.COPY \*.C *.FOR
B.COPY *.C \A\*.FOR
C.COPY *.FOR \*.C
D.COPY \A\*.C *.FOR
(21)下列不正確的轉(zhuǎn)義字符是
A.'\\'
B.'\"
C.'074'
D.'\0'
(22)若有以下定義:
char a; int b;
float c; double d;
則表達(dá)式a*b+d-c值的類型為
A.float
B.int
C.char
D.double
(23)表示關(guān)系x<=y<=z的c語言表達(dá)式為
A.(X<=Y)&&(Y<=Z)
B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z)
D.(X<=Y)&(Y<=Z)
(24)設(shè)a=1,b=2,c=3,d=4,則表達(dá)式:
A.765.12<回車>
B.i=100,f=765.12<回車>
C.100<回車>765.12<回車>
D.x=100<回車>y=765.12<回車>
(29)設(shè)x和y均為int型變量,則執(zhí)行下的循環(huán)后,y值為
for(y=1,x=1;y<=50;y++)
{ if(x>=10))break;
if (x%2==1)
{ x+=5; continue;}
x-=3;
}
A.2
B.4
C.6
D.8
(30)給出以下定義:
char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};
則正確的敘述為
A.數(shù)組X和數(shù)組Y等價(jià)
B.數(shù)組x和數(shù)組Y的長度相同
C.數(shù)組X的長度大于數(shù)組Y的長度
D.數(shù)組X的長度小于數(shù)組Y的長度
(31)以下敘述中不正確的是
A.在不同的函數(shù)中可以使用相同名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
(32)假定a和b為int型變量,則執(zhí)行以下語句后b的值為
a=1; b=10;
do
{ b-=a; a++; }
while (b--<0);
A.9
B.-2
C.-1
D.8
(33)設(shè)j為int型變量,則下面for循環(huán)語句的執(zhí)行結(jié)果是
for( j=10;j>3;j--)
{ if(j%3)j--;
--j; --j;
printf("%d ",j);
}
A.6 3
B.7 4
C.6 2
D.7 3
(34)設(shè)有以下宏定義:
#define N 3
#define Y(n)( (N+1)*n)
則執(zhí)行語句:z=2 * (N+Y(5+1));后,z的值為
A.出錯(cuò)
B.42
C.48
D.54(35)設(shè)P1和P2是指向同一個(gè)int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是
A.k=*P1+*P2;
B.p2=k;
C.P1=P2;
D.K=*P1 * (*P2);
(36)設(shè)有如下定義:
int arr[]={6,7,8,9,10};
int * ptr;
則下列程序段的輸出結(jié)果為
ptr=arr;
* (ptr+2)+=2;
printf ("%d,%d\n",*ptr,*(ptr+2));
A.8,10
B.6,8
C.7,9
D.6,10
(37)以下程序的輸出結(jié)果是
main()
{ int i,k,a[10],p[3]:
K=5;
for (i=0;i<10;i++)a[i]=i;
for (i=0;i<3;i++)p[i]=a[i*(i+1)];
for (i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k);
}
A.20
B.21
C.22
D.23
(38)執(zhí)行以下程序段后,m的值為
int a[2][3]={ {1,2,3},{4,5,6} };
int m,*p;
p=&a[0][0];
m=(*p)*(*(p+2))*(*(p+4));
A)15
B.14
C.13
D.12
(39)有以下程序段
char arr[]="ABCDE";
char *ptr;
for(ptr=arr;ptr
main()
{ union
{ int k;
char i[2];
} *s,a;
s=&a;
s->i[0]=0x39; s->i[1]=0x38;
printf("%x\n",s->k);
}
輸出結(jié)果是
A.3839
B.3938
C.380039
D.390038
(42)有以下程序
#include
main()
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,
B.;
}
輸出結(jié)果是
A.2,1
B.3,2
C.4,3
D.2,-1
(43)設(shè)有如下定義:
int (*ptr)*();
則以下敘述中正確的是
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)
D.ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
(44)有以下程序
#include
struct stu
{ int num;
char name[10];
int age;
};
void fun(struct stu *p)
{ printf("%s\n",(*p).name); }
main()
{
struct stu students[3]={ {9801,"Zhang",20},
{9802,"Wang",19},
{9803,"Zhao",18} };
fun(students+2);
}
輸出結(jié)果是
A.Zhang
B.Zhao
C.Wang
D.18(45)設(shè)有以下說明和定義:
typedef union
{ long i; int k[5]; char c; }DATE;
struct date
{ int cat; DATE cow; double dog; } too;
DATE max;
則下列語句的執(zhí)行結(jié)果是
printf ("%d",sizeof (struct date )+sizeof(max));
A.26
B.30
C.18
D.8
(46)有以下程序
main()
{ char a[]="programming", b[]="language";
char *p1,*p2;
int i;
p1=a; p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));
}
輸出結(jié)果是
A.gm
B.rg
C.or
D.ga
(47)有以下程序
viod fun (int a,int b,int
C.
{ a=456; b=567; c=678;}
main()
{ int x=10, y=20,z=30;
fun (x,y,z);
printf("%d,/%d\n",c,
D.;
}
輸出結(jié)果是
A.30,20,10
B.10,20,30
C.456,567,678
D.678,567,456
(48)有以下程序
int fun(int x,int y,int *cp,int *dp)
{ *cp=x+y; *dp=x-y; }
main()
{ int a, b, c, d;
a=30; b=50;
fun(a,b,&c,&
D.;
printf("%d,%d\n", c,
D.;
}
輸出結(jié)果是
A.50,30
B.30,J50
C.80,-20
D.80,20
(49)有以下程序
main()
{ int i, j;
for(j=10;j<11;j++)
{ for(i=9;i=j-1)printf("%d",j);
}
}
輸出結(jié)果是
A.11
B.10
C.9
D.10 11
(50)有以下程序
#include "atdio.h"
int abc(int u,intv);
main ()
{ int a=24,b=16,c;
c=abc(a,
B.;
printf('%d\n",
C.;
}
nt abc(int u,int v)
{ int w;
while(v)
{ w=u%v; u=v; v=w }
return u;
}
輸出結(jié)果是
A.6
B.7
C.8
D.9 二、填空題(每空2分,共40分)
請(qǐng)將每空的正確答案寫在答題卡【1】-【20】序號(hào)的橫線上,答在試卷上不得分.
(1) 自動(dòng)批自理文件名為【1】 。
(2) DOS命令分為內(nèi)部命令與外部命令,COMP命令屬于【2】命令。
(3) 設(shè)當(dāng)前為C盤,現(xiàn)要用一條DOS命令在打印機(jī)上輸出A盤當(dāng)前目錄下所有擴(kuò)展名為.DAT的文件內(nèi)容。這一條DOS命令應(yīng)為【3】 。
(4) 要將當(dāng)前盤當(dāng)前目錄下的子目錄XYZ中所有擴(kuò)展名為.BAK 的文件名改成擴(kuò)展名為.FOR,應(yīng)使用的DOS命令為【4】 。
(5) 設(shè)DOS外部命令文件所在的路徑均已用PATH命令打通,F(xiàn)要將當(dāng)前盤當(dāng)前目錄下的文件WST.TXT設(shè)置為只讀屬性,應(yīng)使用的DOS命令為【5】 。
(6) 設(shè)x和y均為int型變量,且x=1,y=2,則以下表達(dá)式的值為【6】 。
1.0+x/y
(7) 設(shè)i,j,k均為int型變量,則執(zhí)行完下面的for循環(huán)后,k的值為【7】 。
for(i=0,j=10;i<=j;i++,j--)
k=i+j;
(8) 設(shè)有以下定義的語句:
int a[3][2]={10,20,30,40,50,60}, (*p)[2];
p=a;
則 *(*(p+2)+1)值為【8】 。
(9) 以下程序的輸出結(jié)果是【9】 。
#include
int fun(int x,int y)
{ static int m=0,i=2;
i+=m+1;
m=i+x+y;
return m
}
main()
{ int j=4,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
(10) 函數(shù)fun的功能是:使一個(gè)字符串按逆序存放,請(qǐng)?zhí)羁?/p>
void fun (char str[])
{ char m; int i,j;
for(i=0,j=strlen(str);i<【10】;i++,j--)
{ m=str[i];
str[i]=【11】;
str[j-1]=m;
}
printf("%s\n",str);
}
(11) 以下程序的功能是:從鍵盤上輸入一行字符,存入一個(gè)字符數(shù)組中,然后輸出該字符串,請(qǐng)?zhí)羁铡?/p>
#include"ctype.h"
#include"stdio.h"
main()
{ char str[81],*sptr;
int i;
for(i=0;i<80;i++)
{ str[i]=getchar();
if(str[i]=='\n') break;
}
str[i]=【12】;
sptr=str;
while(*sptr) putchar(*sptr【13】);
}
(12) 以下程序用來對(duì)從鍵盤上輸入的兩個(gè)字符串進(jìn)行比較,然后輸出兩個(gè)字符串中第一個(gè)不相同字符的ASCII碼之差。例如:輸入的兩個(gè)字符串分別為abcdef和abceef,則輸出為-1。請(qǐng)?zhí)羁铡?/p>
#include
main()
{ char str[100],str2[100],c;
int i,s;
printf("\n input string 1:\n"); gest(str1);
printf("\n input string 2:\n"); gest(str2);
i=0;
while((strl[i]==str2[i]&&(str1[i]!=【14】))
i++;
s=【15】;
printf("%d\n",s);
}(13) 以下程序的功能是:從鍵盤上輸入一個(gè)字符串, 把該字符串中的小寫字母轉(zhuǎn)換為大寫字母,輸出到文件test.txt中,然后從該文件讀出字符串并顯示出來。請(qǐng)?zhí)羁铡?/p>
#include
main()
{ FILE *fp;
char str[100]; int i=0;
if((fp=fopen("text.txt",【16】))==NULL)
{ printf("can't open this file.\n");exit(0);}
printf("input astring:\n"); gest(str);
while (str[i])
{ if(str[i]>='a'&&str[i]<='z')
str[i]=【17】;
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("test.txt",【18】);
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}
(14) 以下程序可以把從鍵盤上輸入的十進(jìn)制數(shù)(long型)以二到十六進(jìn)制形式輸出,請(qǐng)?zhí)羁铡?/p>
#include.
main()
{ char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C'
,'D','E','F'};
int c[64],d,i=0,base;
long n;
printf("enter a number:\n"); scanf("%ld",&n);
printf("enter new base:\n"); scanf("%d",&base);
do
{ c[i]=【19】;
i++; n=n/base;
} while(n!=0);
printf("transmite new base:\n");
for(--i;i>=0;--i)
{ d=c[i];
printf("%c",b【20】;
}
}
參考答案
一、選擇題((1)-(40)題每題1分;(41)-(50)題每題2分)
(1)B (2)B (3)D (4)D (5)B (6)A (7)B (8)C (9)D (10)A
(11)D (12)C (13)A (14)B (15)D (16)C (17)B (18)A (19)A (20)A
(21)C (22)D (23)A (24)D (25)B (26)C (27)C (28)B (29)C (30)C
(31)D (32)D (33)B (34)C (35)B (36)D (37)B (38)A (39)D (40)D
(41)A (42)A (43)C (44)B (45)B (46)D (47)A (48)C (49)B (50)C
二、填空題(每空2分,共4分)
(1)至(5)題中所有字母都允許大,小寫或大小寫混合
(1) 【1】AUTOEXEC.BAT
(2) 【2】外部(答 外部命令不扣分)
(3) 【3】COPY A:*.DAT PRN
(在 COPY 后面與A:*.DAT后面都至少要有一個(gè)空格)
(4) 【4】RENXYZ\*.BAK *.FOR 或RENAME XYZ\*.BAK*.FOR
(在REN 或RENAME 后面與XYZ\*.BAK 后面都至少要有一個(gè)空格)
(5) 【5】ATTRIB+R WST.TXT
(在ATTRIB 后面與+R后面都至少有一個(gè)空格)或ATTRIB WST.TXT+R(在ATTRIB后面與WST.TXT后面都至少要有一個(gè)空格)
(6) 【6】1.0或1
(7) 【7】10
(8) 【8】60
(9) 【9】8,17
(10) 【10】 strlen(str )/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1
【11】 str[j-1]或*(str+j-1)
(11) 【12】 '\0' 或0
【13】 ++
(12) 【14】 '\0'或0
【15】 strl[i]-str2[i]
(13) 【16】 "w"或"w+"或"wt"或"w+t"或"""wt+"
【17】 str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A'
【18】 "r"或"r+"或"r+t"或"rt+"
(14) 【19】 nºse
【20】 [d]
【最新C語言考題帶答案】相關(guān)文章:
C語言試題及答案07-26
C語言經(jīng)典例題及答案06-19
C語言新增無紙化真考題練習(xí)06-23
C語言模擬試題及答案09-19
C語言中參數(shù)的傳值問題考題08-22
最新C語言考試強(qiáng)化訓(xùn)練題及答案07-22
最新C語言知識(shí)輔導(dǎo)練習(xí)題及答案10-23
C語言測(cè)試試題及答案08-02
C語言考前練習(xí)試題及答案09-16