第七届全国信息技术应用水平大赛预赛试题
C语言程序设计
一、单选题(60题,1分/题,共60分) [1]、下列选项中,叙述不正确的是( )。 【答 案】B 【分 数】1分 【选 项】
A、用typedef可以定义各种类型名,但不能定义变量 B、typedef和#define都是在程序预编译时处理的
C、用typedef只是将已存在的类型用一个新的标识符来代表 D、使用typedef有利于程序的通用和移植
[2]、若有如下定义: int a=2,*p; float x=1, y=2; char e=„w‟;
则以下用法不正确的是( )。 【答 案】B 【分 数】1分 【选 项】
A、printf(\"%c\ B、p=&x; C、a*=y+x; D、x=y=e;
[3]、下列5个符号串中,属于C语言合法标识符的共计( )个。 _1_2_3
a-b-c float 9cd a3b4 【答 案】B 【分 数】1分 【选 项】 A、1 B、2 C、3 D、4
[4]、int x=20; printf(\"%d\\n\ 以上程序段运行后的输出结果是( )。 【答 案】B 【分 数】1分 【选 项】 A、235 B、-21 C、-20 D、-11
[5]、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值(结果保留两位小数)是( )。 【答 案】A 【分 数】1分 【选 项】 A、2.50 B、2.75 C、3.50
D、0.00
[6]、若有如下程序: void s(char *m,int n) {
*m=*m+3;n=n+3; printf(\"%c,%c,\}
void main() {
char p=„b‟,q=„B‟; s(&q,p);
printf(\"%c,%c\\n\}
则程序运行后的输出结果是( )。 【答 案】A 【分 数】1分 【选 项】 A、E,e,b,E B、e,E,b,F C、E,e,e,E D、e,E,b,E
[7]、桌上有a、b、c、d、e五个黑白球,a=0表示白球,a=1表示黑球,其他球同样定义。则以下能表示a是黑球,其余至少有三个白球的表达式是( )。 【答 案】C 【分 数】1分 【选 项】
A、a&&(b+c+d+e)==1 B、a&&(b+c+d+e)>2
C、a&&(b+c+d+e)<=1 D、!a&&(b+c+d+e)==3
[8]、C语言中运算对象必须是整型的运算符是( )。 【答 案】C 【分 数】1分 【选 项】 A、/ B、++ C、% D、!=
[9]、以下程序的输出结果是( )。 #include for(i=j; i<=2*j; i++) switch (i/j) { case 0: case 1: printf(\"*\"); break; case 2: printf(\"#\"); break; } } 【答 案】D 【分 数】1分 【选 项】 A、*### B、**## C、***# D、****# [10]、以下程序的输出结果是( )。 main( ) { int w=4,x=3,y=2,z=1; if(x>y&&!(z==w)) printf(\"%d\\n\ else printf(\"%d\\n\ } 【答 案】A 【分 数】1分 【选 项】 A、1 B、2 C、3 D、4 [11]、关于C语言形参与实参,以下说法正确的是( )。 【答 案】A 【分 数】1分 【选 项】 A、实参和与其对应的形参各占用的存储单元 B、实参和与其对应的形参共占用同一个存储单元 C、只有当实参和与其对应的形参同名时才共占用同一个存储单元 D、形参是虚拟的,从不占用存储单元 [12]、以下宏定义中,不会引起二义性的共计( )个。 (1)#define POWER(x) x*x (2) #define POWER(x) (x)*(x) (3) #define POWER(x) (x*x) (4) #define POWER(x) ((x)*(x)) 【答 案】A 【分 数】1分 【选 项】 A、1 B、2 C、3 D、4 [13]、以下程序的输出结果是( )。 main() { int i,j,x=0; for (i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if (j%2) continue; x++; } x++; } printf(\"x=%d\\n\} 【答 案】C 【分 数】1分 【选 项】 A、x=4 B、x=6 C、x=8 D、x=12 [14]、已知有以下说明: int a[]={8,1,2,5,0,4,7,6,3,9}; 那么a[*(a+a[3])]的值为( )。 【答 案】A 【分 数】1分 【选 项】 A、0 B、4 C、5 D、7 [15]、有定义如下: struct pupil { char name[20]; int age; int sex; } pup[5],*p; p=pup; 以下scanf函数调用语句中,对结构体变量成员的引用不正确的是( )。 【答 案】D 【分 数】1分 【选 项】 A、scanf(\"%s\B、scanf(\"%d\C、scanf(\"%d\D、scanf(\"%d\ [16]、以下程序运行后的输出结果是( )。 #include struct NODE { int num; struct NODE *next; }; main() { struct NODE *p,*q,*r; p=(struct NODE*)malloc(sizeof(struct NODE)); q=(struct NODE*)malloc(sizeof(struct NODE)); r=(struct NODE*)malloc(sizeof(struct NODE)); p->num=10; q->num=20; r->num=30; p->next=q; q->next=r; printf(\"%d\\n \ } 【答 案】D 【分 数】1分 【选 项】 A、10 B、20 C、30 D、40 [17]、当a=2,b=3,c=4,d=5时,执行下面一段程序后x的值为( )。 if(ad)x=1 ; else if(a>c) if(b [18]、设有程序段unsigned char k;while (k>0) k++; printf(\"%d\\n\则该程序段的输出结果为( )。 【答 案】D 【分 数】1分 【选 项】 A、-1 B、-127 C、-128 D、0 [19]、若有以下定义:int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*p)[3]=x; 则能够正确表示数组元素x[2][1]的表达式是( )。 【答 案】C 【分 数】1分 【选 项】 A、*((*p+2)[1]) B、(*p+2)+1 C、*(*p+7) D、*(*p+2)+1 [20]、以下程序运行后的输出结果是( )。 #include int a=10; p=&a; ++a; } void main() { int a=5; fun(&a); printf(\"%d\\n\} 【答 案】A 【分 数】1分 【选 项】 A、5 B、6 C、10 D、11 [21]、以下程序运行后的输出结果是( )。 #include\"stdio.h\" int sub(int *t,int n) { int *p1,*p2; for(p1=t,p2=t;p1-t int a[9]={9,36,19,39,26,5,6,33,15}; printf(\"%d\\n\ } 【答 案】A 【分 数】1分 【选 项】 A、5 B、9 C、15 D、39 [22]、 下面程序的运行结果是( )。 #include while(s1 【答 案】C 【分 数】1分 【选 项】 A、7654321 B、1714171 C、1711717 D、7177171 [23]、C语言规定函数返回值的类型由( )。 【答 案】A 【分 数】1分 【选 项】 A、在定义时所指定的函数类型所决定 B、调用该函数时的主调函数类型所决定 C、return语句中的表达式类型所决定 D、调用该函数时系统临时决定 [24]、有以下程序段: #include int i=1,sum=0,n; scanf(\"%d\ do { i+=2; sum+=i ; }while(i!=n); printf(\"%d\} 若使程序的输出值为15,则应该从键盘输入的n的值是【答 案】D 【分 数】1分 【选 项】 A、1 B、3 )。 ( C、5 D、7 [25]、以下程序的运行结果是( )。 void main() { char a[]=\"movie\ printf(\"%d %d\\n\} 【答 案】C 【分 数】1分 【选 项】 A、5 5 B、6 6 C、6 10 D、6 12 [26]、以下程序的输出结果是( )。 #include unsigned char a,b; a=0x0a|3; b=0x0a&3; printf(\"%d %d\\n\} 【答 案】B 【分 数】1分 【选 项】 A、2 11 B、11 2 C、7 13 D、13 7 [27]、以下选项中,能定义s为合法的结构体变量的是( )。 【答 案】C 【分 数】1分 【选 项】 A、typedef struct abc { double a; char b[10]; }s; B、struct ABC { double a; char b[10]; } ABC s; C、struct abc { double a; char b[10]; }s; D、typedef ABC { double a; char b[10]; } ABC s; [28]、以下程序的输出结果是( )。 main() { int a=0,j; for(j=0;j<4;j++) { switch(j) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf(\"%d\\n\} 【答 案】D 【分 数】1分 【选 项】 A、10 B、13 C、20 D、36 [29]、以下程序功能为输入1个正整数n,计算并输出表达式s的前n项的和:s=1/2-2/3+3/4-4/5+ ……(-1)#include \"stdio.h\" void main() { int k, flag=1, n; float s=0; scanf(\"%d\ for (k=1; k<=n; k++){ s=s+______; n/(n+1)。其中下划线处应填入的正确语句为( )。 flag=-flag; } printf(\"sum=%f\\n\} 【答 案】A 【分 数】1分 【选 项】 A、1.0*k/(k+1)* flag B、flag*n/(n+1) C、-k/(k+1) D、1.0*k/(k+1) [30]、有以下函数:char *fun(char *p){return p;},该函数的返回值为( )。 【答 案】B 【分 数】1分 【选 项】 A、不确定值 B、参数p中存放的地址值 C、一个临时存储单元的地址值 D、形参p自身的地址值 [31]、以下程序运行后的输出结果是( )。 main() { int a,b; a=50;b=90; printf(\"%d\\n\} 【答 案】A 【分 数】1分 【选 项】 A、90 B、50 90 C、50 D、100 [32]、int x=-20; printf(\"%d\\n\以上程序段的输出结果是( )。 【答 案】A 【分 数】1分 【选 项】 A、19 B、20 C、21 D、-1 [33]、若以下程序所生成的可执行文件名为file1.exe,当输入命令行:FILE1 CHINA BEIJING SHANGHAI,执行该程序时,程序的输出结果是( )。 main(int argc,char * argv []) { while(argc-->1) {++argv;printf(\"%s\} 【答 案】A 【分 数】1分 【选 项】 A、CHINA BEIJING SHANGHAI B、FILE1 CHINA BEIJING C、C B S D、F C B [34]、下列程序运行后的输出结果是( )。 fun(int a, int b) { if(a>b) return(b); else return(a); } main() { int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf(\"%d\\n\} 【答 案】A 【分 数】1分 【选 项】 A、3 B、6 C、8 D、12 [35]、有如下程序: long f(int n) { if(n>2) return(f(n-2)+f(n-3)); else if(n==2) return(2); else return(1); } main() { printf(\"%d\\n\该程序的输出结果是( )。 【答 案】C 【分 数】1分 【选 项】 A、3 B、4 C、5 D、6 [36]、在C程序中有如下语句:char *func(int x,int y); 下列说法正确的是( )。 【答 案】C 【分 数】1分 【选 项】 A、该语句表示对函数func的定义 B、该语句表示对函数func的调用 C、该语句表示对函数func的原型说明 D、该语句是不合法的 [37]、以下程序的输出结果是( )。 #include int w[4]={8,20},*p; p= w; p++; printf(\"%d\\n\} 【答 案】A 【分 数】1分 【选 项】 A、0 B、8 C、20 D、不定 [38]、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( )。 【答 案】C 【分 数】1分 【选 项】 A、char s[10]=\"abcdefg\"; B、char t[]=\"abcdefg\C、char s[10];s=\"abcdefg\"; D、char s[10];strcpy(s,\"abcdefg\"); [39]、以下程序将输出的字符是( )。 #include \"stdio.h\" main() { char c; char (*p)[3]; char s[2][3] ={„a‟,„b‟,„c‟,„d‟,„e‟,„f‟}; p=&s[0]; c=*(p[1]+1); printf(\"%c\} 【答 案】C 【分 数】1分 【选 项】 A、b B、d C、e D、f [40]、以下程序的输出结果是( )。 #include printf(\"%d\\n\} 【答 案】D 【分 数】1分 【选 项】 A、0 B、1 C、3 D、6 [41]、若a是整型变量,则表达式~(a^~a)等价于( )。 【答 案】B 【分 数】1分 【选 项】 A、~a B、0 C、1 D、2 [42]、在C语言中,有关隐含存储类别的说法,正确的是( )。 【答 案】C 【分 数】1分 【选 项】 A、函数的隐含存储类别是auto B、函数的隐含存储类别是static C、函数的隐含存储类别是extern D、函数没有隐含存储类别 [43]、以下函数fun( )是求两个正整数的最大公约数,其中下划线处应填入的正确语句是( )。 int fun(m,n) int m,n; { int r; if(m 【答 案】A 【分 数】1分 【选 项】 A、r!=0 B、r==0 C、n!=0 D、n==0 [44]、若调用fputc函数输出字符成功,则其返回值是( )。 【答 案】D 【分 数】1分 【选 项】 A、EOF B、0 C、1 D、输出的字符 [45]、在32位PC机上使用C语言时,若有以下定义: union data { int I; char ch; double f;}b; 则共用体变量b占用内存的字节数是( )。 【答 案】C 【分 数】1分 【选 项】 A、2 B、4 C、8 D、12 [46]、语句printf(“%d\\n”,strlen(“xyz\\\xab\\3\\\\\\x67”));的输出结果是( )。 【答 案】B 【分 数】1分 【选 项】 A、7 B、8 C、9 D、11 [47]、下列用于printf函数的控制字符常量中,代表退格的是( )。 【答 案】A 【分 数】1分 【选 项】 A、'\\b' B、'\' C、'\\r' D、'\\n' [48]、以下是关于枚举的程序,其运行结果是( )。 #include \"stdio.h\" main() { enum weekday { sun,mon,tue=5,wed,thu,fri,sat } a,b,c,d; a=sun; b=mon; c=tue; d=wed; printf(\"%d %d %d %d\\n\} 【答 案】C 【分 数】1分 【选 项】 A、0 0 5 0 B、1 2 5 4 C、0 1 5 6 D、0 1 5 3 [49]、以下是关于文件读写操作的程序,其屏幕输出是( )。 #include FILE*fp;int i,a[4]={1,2,3,4},b; fp=fopen(\"data.dat\ for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen(\"data.dat\ fseek(fp,-2L*sizeof(int),SEEK_END); fread(&b,sizeof(int),1,fp); fclose(fp); printf(\"%d\\n\} 【答 案】C 【分 数】1分 【选 项】 A、1 B、2 C、3 D、4 [50]、以下程序运行后向文件输出的结果是( )。 #include \"stdio.h\" void main() { FILE *fp; fp=fopen(\"test.txt\ fprintf(fp,\"%d%.1f,%c%c\ fclose(fp); } 【答 案】B 【分 数】1分 【选 项】 A、5 238.41 B h B、5238.4,Bh C、5,238.4,B,h D、5238.41Bh [51]、以下程序中,if (i>j)语句执行的次数共计( )次。 main() { int i=0,j=14,k=2,s=0; for(;;) { i+= k ; if(i>j) { printf(\"%d\ break ; } s+=i ; } } 【答 案】C 【分 数】1分 【选 项】 A、6 B、7 C、8 D、9 [52]、若执行fopen函数时发生错误,则函数的返回值是( )。 【答 案】D 【分 数】1分 【选 项】 A、地址值 B、0 C、1 D、EOF [53]、有以下程序: main() { char str[ ][8]={ \"Hello\ printf(\"%s\\n\ 该程序运行后的输出结果是( )。 【答 案】C 【分 数】1分 【选 项】 A、Hello B、Beijing C、o D、oBeijing [54]、下列函数调用语句中含有( )个参数。 func(((f1,f2),(f2,f3)),(f5,f6,f7),f8) 【答 案】A 【分 数】1分 【选 项】 A、3 B、5 C、6 D、7 [55]、下列程序中函数sort的功能是对a数组中的数据进行由大到小的排序: void sort(int a[ ],int n) { int i,j,t;
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务