2017年計算機考試C語言考試題及答案
山不厭高,水不厭深。 驕傲是跌跤的前奏。以下是小編為大家搜索整理2017年計算機考試C語言考試題及答案,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
一、 選擇題((1)-(40)每小題1分, (41)-(50)每小題2分, 共60分)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。
(1) 下列設備中只能作為輸入設備的是
A.磁盤驅動器
B.鼠標器
C.存儲器
D.顯示器
(2) 下列DOS組合控制鍵中,能使標準輸出同時送到屏幕與打印機的是
A.Ctrl+Break
B.Ctrl+P
C.Ctrl+C
D.Ctrl+H
(3) 通常所說的386機是
A.8位機
B.16位機
C.32位機
D.64位機
(4) 二進制數01100100轉換成十六進制數是
A.64
B.63
C.100
D.144
(5) 十六進制數100轉換成十進制數是
A.1024
B.512
C.256
D.128
(6) 對于存有重要數據的5.25英寸軟盤,防止計算機病毒感染的方法是
A.不要與有病毒的軟盤放在一起
B.在寫保護口貼上膠條
C.保持軟盤清潔
D.定期對軟盤格式化
(7) 在啟動DOS系統時,啟動盤的根錄下必須包含的文件是
A.START.COM
B.COMMAND.COM
C.FORMAT.COM
D.BOOT.COM
(8) DOS系統啟動后,下列文件中常駐內存的是
A.DOS.COM
B.COMMAND.COM
C.DISKCOPY.COM
D.SYS.COM
(9) 下列名字中,不能作為DOS磁盤文件名的是
A.JTU
B.93GZ.PRG
C.CON
D.ATT&T.BAS
(10) 下列命令中屬于內部命令的是
A.SYS
B.COMP
C.DIR
D.DISKCOMP
(11) 下列文件名中,能與ABC?.?匹配的是
A.AB12.C
B.ABCD.FOR
C.ABC.TXT
D.ABCD.C
(12) 要列出當前盤當前目錄中第三個字符為"B"的所有文件的清單,可使用的命令為
A.DIR **B*.*
B.DIR ??B*.?
C.DIR ??B.*
D.DIR ??B*.*
(13) 設當前盤為C盤,其根目錄下有兩個子目錄D1與D2,且當前目錄為D1,若要進入子目錄D2,可使用的命令為
A.CD D2
B.CD D2\
C.CD \D2
D.CD D1\D2
(14) 設當前盤為C盤,A盤當前目錄為根目錄。為了刪除A盤目錄\WS下擴展名為.TXT的所有文件,可用的命令為
A.DEL WS\*.TXT
B.DEL \WS\*.TXT
C.DEL A:\WS\?.TXT
D.DEL A:WS\*.TXT
(15) 設當前盤為C盤,C盤當前目錄為\AAA\BBB\A\B\X。下列命令中能正確執行的是
A.MD \AAA\BBB\A
B.MD X
C.MD \
D.MD \AAA\BBB\A\B\X
(16) 在下列各組的兩個命令中,根據給定的條件,執行效果互相等價的是
A.DEL \DOS 與 RD \DOS(當前盤上有目錄\DOS)
B.FORMAT A:與 DEL A:*.*(A盤為啟動盤)
C.DISKCOPY A: B: 與 COPY A:*.* B:(A盤為啟動盤)
D.COPY F1 F2 與 TYPE F1>F2(當前盤當前目錄下有文件F1)
(17) 為了在1.2MB的高密驅動器A中格式化一張360KB的啟動盤,可用的命令為
A.FORMAT A:
B.FORMAT A:/S/1
C.FORMAT A:/S/4
D.FORMAT A:/S
(18) 要在打印機上輸出當前盤當前目錄下擴展名為.TXT的所有文件內容,正確的命令為
A.COPY *.TXT PRN
B.COPY *.TXT>PRN
C.TYPE *.TXT PRN
D.TYPE *.TXT>PRN
(19) 設B盤目錄結構如下:
設B盤的當前目錄為\F2,要將A盤當前目錄下的文件P.BAS復制到B盤的F3子目錄中,可用的命令為
A.COPY P.BAS B:
B.COPY A:P.BAS B:\
C.COPY A:P.BAS B:\F3
D.COPY A:P.BAS B:F3\
(20) 設當前盤為A盤,要將B盤當前目錄下的兩個文件A.TXT與X.TXT連接后以文件名Y.TXT存放到A盤的當前目錄中,可用的命令為
A.COPY A.TXT+X.TXT A:Y.TXT
B.COPY B:A.TXT+X.TXT A:Y.TXT
C.COPY B:A.TXT+B:X.TXT >Y.TXT
D.COPY B:A.TXT+B:X.TXT Y.TXT(21) C語言中最簡單的數據類型包括
A.整型、實型、邏輯型
B.整型、實型、字符型
C.整型、字符型、邏輯型
D.整型、實型、邏輯型、字符型
(22) C語言中,運乍對象必須是整型數的運算符是
A.%
B.\
C.%和\
D.* *
(23) 為表示關系x≥y≥z,應使用C語言表達式
A.(x>=y)&&(y>=z) B(x>=y)AND(y>=z)
C.(x>=y>=z)
D.(x>=y)&(y>=z)
(24) 下述對C語言字符數組的描術中錯誤的是
A.字符數組可以存放字符串
B.字符數組中的字符串可以整體輸入、輸出
C.可以在賦值語句中通過賦值運算符"="對字符數組整體賦值
D.不可以用關系運算符對字符數組中的字符串進行比較
(25) 設有如下定義: int x=10,y=3,z; 則語句
printf("%d\n",z=(x%y,x/y)); 的輸出結果是
A.1
B.0
C.4
D.3
(26) 以下程序的輸出結果是
main()
{ int x=10,y=10;
printf("%d %d\n",x--,--y); }
A.10 10
B.9 9
C.9 10
D.10 9
(27) 定義如下變題和數組:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
則下面語句的輸出結果是
for(i=0;i<3;i++) printf("%d",x[i][2-1]);
A.1 5 9
B.1 4 7
C.3 5 7
D.3 6 9
(28) 若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為
A.a<>0
B.!a
C.a=0
D.a
(29) 閱讀程序:
#include
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n",p+9); }
該程序有兩個printf 語句, 如果第一個printf 語句輸出的是194, 則第二個printf語句的輸出結果是
A.203
B.204
C.1a4
D.1a6
(30) 設有如下函數定義:
int f(char *s)
{ char *p=s;
while(*p!=’\0’) p++;
return(p-s); }
如果在主程序中用下面的語句調用上述函數,則輸出結果為
printf("%d\n",f("goodbey!"));
A.3
B.6
C.8
D.0
(31) 以下說法中正確的是
A.C語言程序總是從第一個的函數開始執行
B.在C語言程序中,要調用的函數必須在main()函數中定義
C.C語言程序總是從main()函數開始執行
D.C語言程序中的main()函數必須放在程序的開始部分
(32) 執行下面的程序后,a的值為
main()
{ int a,b;
for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1) {b+=3; continue; }
b-=5; } }
A.7
B.8
C.9
D.10
(33) 以下程序段的輸出結果是
int x=3;
do { printf("=",x-=2);} while(!(--x));
A.1
B.3 0
C.1-2
D.死循環
(34) 定義如下變量: int n=10; 則下列循環的輸出結果是
while(n>7)
{ n--;
printf("%d\n",n); }
A.10
B.9
C.10
D.9
9 8 9 8
8 7 8 7
7 6
(35) 兩次運行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結果是
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
else printf("%d\n",x - -); }
A.7和5
B.6和3
C.7和4
D.6和4(36) 設有如下定義: char *aa[2]={"abcd","ABCD"}; 則以下就法中正確的是
A.aa數組成元素的值分別是"abcd"和ABCD"
B.aa是指針變量,它指向含有兩個數組元素的字符型一維數組
C.aa數組的兩個元素分別存放的是含有4個字符的一維字符數組的首地址
D.aa數組的兩個元素中各自存放了字符’a’和’A’的地址
(37) 以下程序的輸出結果是
main( )
{ int a=-1,b=4,k;
k=(+ +a〈0)&&!(b - -〈=0);
printf("%d%d%d\n",k,a
B.; }
A.104
B.103
C.003
D.004
(38) 設有以下定義:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a,*p=a[0];
則下列能夠正確表示數組元素a[1][2]的表達式是
A.*((*prt+1) [2])
B.*(*(p+5))
C.(*prt+1)+2
D.*(*(a+1)+2)
(39) 下列程序的輸出結果是
main( )
{ char*p1,*p2,str[50]="xyz";
p1="abcd";
p2="ABCD";
strcpy(str+2,strcat(p1+2,p2+1);
printf)"%s",str); }
A.xyabcAB
B.abcABz
C.ABabcz
D.xycdBCD
(40) 執行下面的程序后,a的值是
#define SQR(X) X*X
main( )
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a); }
A.10
B.1
C.9
D.0
(41) 下列程序執行后輸出的結果是
#include
f(int a)
{ int b=0; static c=3:
a=c+ +,b+ +;
return (a); }
main( )
{ int a=2,i,k;
for(i=0;i〈2;i=+ +〉 k=f(a+ +);
printf("%d\n",k); }
A.3
B.0
C.5
D.4
(42) 下列程序的輸出結果是
main( )
{ int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf("%d",*(p++)); printf("%d\n",* *k); }
A.4 4
B.2 2
C.2 4
D.4 6
(43) 閱讀下列程序:
main( )
{ int n[3],i,j,k;
for(i=0;i〈3;i++〉 n[i]=0;
k=2;
for (i=0;i〈k;i++〉
for (j=0;j〈k;j++〉 n[j]=n[i]+1;
printf("%d\n",n[1]); }
下述程序運行后輸出結果是
A.2
B.1
C.0
D.3
(44) 字符’0’的ASCII碼的十進制數為48,且數組的第0個元素在低位,則以下程序的輸出結果是
#include
main( )
{ union { int i[2]; long k; char c[4]; }r,*s=&r;
s->i[0]=0x39;
s->i[1]=0x38;
printf("%c\n",s->c[0]) }
A.39
B.9
C.38
D.8(45) 設有以下定義:
typedef union { long i;int k[5];char c;}DATE;
struct date { int cat;DATE cow;double dog;}too;
DATE max;
則下列語句的執行結果是
printf("%d",sizeof(struct date)+sizeof(max));
A.25
B.30
C.18
D.8
(46) 執行以下程序后,y的值是
main ( )
{ int a[]={2,4,6,8,10};
int y=1,x,*p;
p=&a[1];
for(x=0;x<3;x++) y + = * (p + x);
printf("%d\n",y); }
A.17
B.18
C.19
D.20
(47) 下列程序執行后輸出的結果是
int d=1;
fun (int q)
{ int d=5;
d + =p + +; printf("%d".
D.; }
main( )
{ int a=3;
fun(a);
d + = a + +; printf("%d\n",
D.; }
A.8 4
B.9 6
C.9 4
D.8 5
(48) 下列程序的輸出結果是
main( )
{ char ch[2][5]={"6934,"8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i + +) p[i]=ch[i];
for(i=0;i<2;i + +)
for(j=0;p[i][j]>’\0’&&p[i][j]<=’9’;j+=2) s=10*s+p[i][j]-’0’;
printf("%d\n",s);
A.6385
B.69825
C.63825
D.693825
(49) 以下程序的輸出結果是
fut (int**s,int p[2][3])
{ **s=p[1][1]; }
main( )
{ int a[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&p,a);
primtf("%d\n",*p); }
A.1
B.7
C.9
D.11
(50) 以下程序的輸出結果是
#include"ctype.h"
space (char *str)
{ int i,t;char ts[81];
for(i=0,t=0;str[i]!=’\0’;i+=2)
if(! isspace(*str+i)&&(*(str+i)!=’a’))
ts[t++]=toupper(str[i]);
ts[t]=’\0’;
strcpy(str,ts); }
mian( )
{ char s[81]={"a b c d e f g"};
space(s);
puts(s); }
A.abcdeg
B.bcde
C.ABCDE
D.BCDE二、填空題(每空2分,共40分)
請將每空的正確答案寫在答題卡上【1】-【20】序號的橫線上,答在試卷上不得分。
(1) 十進制數112.375轉換成十六進制數為 【1】 。
(2) 存儲200個32×32點陣的漢字信息需 【2】 KB。
(3) 數字符號0的ASCII碼十進制表示為48,數字符號9的ASCII碼十進制表示為 【3】 。
(4) DOS命令分為內部命令與外部命令,TREE命令屬于 【4】 命令。
(5) 自動批處理文件的文件名為【5】 。
(6)表示條件:10
(7) 下列程序的輸出結果是【7】
main()
{ char b[]="ABCDEFG";
char *chp=&b[7];
while(--chp>&b[0]) putchar(*chp);
putchar(’\n’); }
(8) 下列程序的輸出結果是【8】 。
int ast(int x,int y,int * cp,int * dp)
{ *cp=x+y; *dp=x-y; }
main()
{ int a,b,c,d;
a=4;b=3;
ast(a,b,&c,&d);
printf("%d %d/n",c,d); }
(9) 以下程序的功能是:人鍵盤上輸入若干個學生的成績, 統計并輸出最高成績和最低成績,當輸入負數時結束輸入.請填空.
main()
{ float x,amax,amin;
scanf("%f",&x);
amax=x; amin=x;
while(【9】)
{ if(x>amax) amax=x;
if(【10】) amin=x;
scanf("%f",&x); }
printf("\namax=%f\namin=%f\n",amax,amin); }
(10) 下面程序通過函數average計算數組中各元素的平均值,請填空.
float average(int * pa,int n)
{ int i;
float avg=0.0;
for(i=0;i avg=【12】;
return avg; }
main()
{ int i,a[5]={2,4,6,8,10};
float mean;
mean=average(a,5); printf("mean=%f\n",mean);}
(11) 閱讀程序:
#include "string.h"
#include "stdio.h"
strle(char a[],char b[])
{ int num=0,n=0;
while(*(a+num)!=’\0’),num++;
while(b[n]){ *(a+num)=b[n];num++;n++;}
return (num);}
main()
{ char str1[81],str2[81],*p1=str1,*p2=str2;
gets(p1); gets(p2);
printf("%d\n",strle(p1,p2)); }
運行上面程序,如果從鍵盤上輸入字符串qwerty和字符串abcd則程序的輸出結果是 【13】 。
(12) 以下程序的輸出結果是 【14】 。
fun(int n,int *s)
{ int f1,f2;
if(n = =1||n = =2) *s=1;
else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2;} }
main()
{ int x;
fun(6,&x); printf("%d\n",x); }
(13) 閱讀程序:
main()
{ char str1[]="how do you do" ,str2[10];
char *p1=str1,*p2=str2;
scanf("%s",p2); printf("%s",p2); printf("%s\n",p1); }
運行上面的程序,輸入字符串HOW DO YOU DO 則程序的輸出結果是【15】 。 (14) 以下程序由終端輸入一個文件名,然后把從終端鍵盤輸入的字符依次存放到該文件中,用#作為結束輸入的標志.請填空.
#include
main()
{ FILE * fp;
char ch,fname[10];
printf("lnput the name of file\n");
gets(fname);
if((fp=【16】)==NULL)
{ printf("Cannot open\n"); exit(0);}
printf("Enter data\n");
while((ch=getchar())!=’#’) fputc(【17】,fp);
fclose(fp); }
(15) 以下函數creat用來建立一個帶頭結點的單向鏈表,新產生的結點總是插在鏈表的末尾。單向鏈表的頭指針作為函數值返回.請填空:
#include
struct list { char data; struct list * next; };
struct list * creat()
{ struct list * h,* p,* q;
char ch;
h=【18】 malloc(sizeof(struct list));
p=q=h;
ch=getchar();
while(ch!=’?’)
{ p=【19】 malloc(sizeof(struct list));
p->data=ch;
p->next=p;
q=p;
ch=getchar();
}
p->next=’\0’;
【20】
}
參考答案
一 選擇題((1)~(40)題每題1分,(41)~(50)題每題2分,共60分)
(1)B (2)B (3)C (4)A (5)C (6)B (7)B (8)B (9)C (10)C
(11)D (12)D (13)C (14)D (15)B (16)D (17)C (18)A (19)C (20)D
(21)B (22)A (23)A (24)C (25)D (26)D (27)C (28)D (29)D (30)C
(31)C (32)B (33)C (34)B (35)A (36)D (37)D (38)D (39)D (40)B
(41)D (42)C (43)D (44)B (45)B (46)C (47)A (48)A (49)C (50)D
二 填空題(每空2分,共40分)
((1)至(5)題中所有字母都允許大`小寫或大小寫混合)
(1) 【1】 70.6
(2) 【2】 25(答25KB不扣分)
(3) 【3】 57
(4) 【4】 外部(答外部命令不扣分)
(5) 【5】 AUTOEXEC.BAT(答AUTOEXEC扣1分)
(6) 【6】 (x>10 && x<100)││x<0 或(1010 && x<100) 或 0>x││(10< && x<100)
(并且括號有無都可以)
(7) 【7】 GFEDCB
(8) 【8】 7 1
(9) 【9】 x>=0.0 或 !(x<0) 或!(x<0.0)
或0.0<=x 或!(0.0>x) 或! (0>x)
(10)【10】 xx 或 amin>=x
【11】 *(pa+i) 或 pa[i]
【12】 avg/n 或avg/(float)n 或 avg/(double)n
(11)【13】 10
(12)【14】 8
(13)【15】 HOW how do you do (說明:HOW 和how之間有無空格均可)
(14)【16】 fopen(fname,"w")說明:"w"開頭的字符串均可)
【17】 ch
(15)【18】 (struct list *)
【19】 (struct list *)
【20】 return(h); 或 return h;
【計算機考試C語言考試題及答案】相關文章:
2024年C語言考試題及答案09-20
2017年計算機C語言考試題及答案08-06
2017計算機二級《C語言》考試題及答案09-29
計算機二級《C語言》備考試題及答案06-18
計算機二級C語言考試上機考試題及答案10-29
全國計算機二級考試C語言備考試題及答案09-18
全國計算機二級《C語言》機考試題及答案09-22