一、
C语言所提供的根本数据类型包括字符型、整
型、双精度型、单精度型和____: A) 指针型 B) 构造型 C) 数组型 D) 列举类型 正确答案是: D 二、
下面四个选项中,均是合法浮点数的选项是:
A) 1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5 C) 123e 1.2e-.4 e-4 D) -e3 e-4 5.e-0 正确答案是: B
3、 以下符合C语言语法的表达式: A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B
4、 假设有定义int a=12,那么表达式a+=a-=a*=a的值是:
A) 0 B) -264 C) -144 D) 132 正确答案是: A 五、
下面程序的输出结果是:
#include int a,b,c; int d; b=(a=32767, a++); c=d=0xffff; printf(\"%x,%d,%d,%d\\n\ } A) 8000,32767,65535,65535 B) -1,-1,32767,8000 C) -1,-1,-1,-1 D) 32767,-1,-1,-1 正确答案是: A 六、 有double型变量x=2.5,y=4.7,整型变量a=7,那么表达式 x+a%3*(int)(x+y)%2/4 的值是: C) 2.75 D) 0 正确答案是: B 7、 设 int a=12,那么执行完语句a+=a-=a*a后,a的值是 A) 552 B) 264 C) 144 D) -264 正确答案是: D 八、 表达式: 10!=9的值是 A) true B) 非零值 C) 0 D) 1 正确答案是: D 九、 在以下选项中,不正确的赋值语句是 A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 正确答案是: D 10、 设a,b和c都是int型变量,且a=3,b=4,c=5, 那么下面的表达式中, 值为0的表达式是 A) 'a'&&'b' B) a<=b C) a||b+c&&b-c D) !((a正确答案是: D 1一、 能正确表示a和b同时为正或同时为负的逻辑表达式是 A) (a>=0 || b>=0) && (a<0 || b<0) B) (a>=0 && b>=0) && (a<0 && b<0) C) (a+b>0 && a+b<=0) D) a*b>0 正确答案是: D 1二、 运行下面程序后,输出是( )。 #include if (k<=0) printf(\"****\\n\"); else printf(\"####\\n\") } A) #### B) **** C) ####**** D) 有语法错误不能通过编译 正确答案是: D 13、 下面程序的输出结果是 #include { case 1:switch(b<0) { case 1: printf(\"@\"); break; case 0: printf(\"!\"); break; } case 0:switch(c==5) { case 0: printf(\"*\"); break; case 1: printf(\"#\"); break; default: printf(\"%%\");break; } default: printf(\"&\"); } printf(\"\\n\"); } A) & B) !#& C) %% D) @*& 正确答案是: B 14、 运行下面程序时,假设从键盘输入数据为 \"123\", 那么输出结果是( )。 #include \"stdio.h\" void main() { int num,i,j,k,place; scanf(\"%d\ if (num>99) place=3; else if(num>9) place=2; else place=1; i=num/100; j=(num-i*100)/10; k=(num-i*100-j*10); switch (place) { case 3: printf(\"%d%d%d\\n\ break; case 2: printf(\"%d%d\\n\ break; case 1: printf(\"%d\\n\ } } A) 123 B) 1,2,3 C) 321 D) 3,2,1 正确答案是: C 1五、 以下程序的输出结果是 #include A) 1,0,4 B) 1,0,3 C) 0,0,3 D) 0,0,4 正确答案是: D 1六、 执行以下程序,分别输入-10和5,运行的结果分别是( )。 #include { case -1: y=0; break; case 0: y=x; break; case 1: y=10; break; case 2: case 3: y=-0.5*x+20; break; default: y=-2; } if (y!=-2) printf(\"y=%d\\n\ else printf(\"error\\n\"); } A) y=0 B) y=0 y=5 y=-2 C) y=-10 D) y=0 y=5 y=10 正确答案是: A 17、 执行下面程序时,假设从键盘输入\"2 那么程序的 运行结果是( )。 #include if (cp>='0' && cp<='9') k=cp-'0'; else if (cp>='a' && cp<='f') k=cp-'a'+10; else k=cp-'A'+10; printf(\"%d\\n\ } A) 2 B) 4 C) 1 D) 10 正确答案是: A 1八、 以下程序执行后的输出结果是( )。 #include printf(\"%d is greater than 10000\\n\ else printf(\"%d is 100 to 999\\n\ } else {if (a<10) printf(\"%d is less than 10\\n\ printf(\"%d\ A) 无穷次 B) 0次 C) 1次 D) 2次 正确答案是: B 2二、 下面程序的输出结果是( )。 else printf(\"%d is 10 to 99\\n\ } } A) a is less than 10 B) a is 10 to 99 C) a is greater than 10000 D) 358 is 100 to 999正确答案是: D 1九、 以下表达正确的选项是 A) do-while语句组成的循环不能用其它语句组成的循环来代替 B) do-while语句组成的循环只能用break语句退出 C) 用do-while语句组成的循环,在while后的表达式为非零时终止循环 D) 用do-while语句组成的循环,在while后的表达式为零时终止循环 正确答案是: D 20、 设i,j,k均为int型变量,那么执行完下面的 for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j; A) 12 B) 10 C) 11 D) 9 正确答案是: B 2一、 假设i为整型变量,那么以下循环语句的循环次数是( )。 for(i=2;i==0;) #include { unsigned int num,k; num=26;k=1; do { k*=num%10; num/=10; } while(num); printf(\"%d\\n\ } A) 2 B) 12 C) 60 D) 18 正确答案是: B 23、 下面程序的输出结果是( )#include for(i=1;i<=50;i++) { x=i; if (++x%2==0) if (x%3==0) if (x%7==0) printf(\"%d\ } } 。 A) 28 B) 27 C) 42 D) 41 正确答案是: D 24、 下面程序的输出结果是( )。 #include if(y A) x=4,y=4,a=1 B) x=5,y=5,a=1 C) x=5,y=4,a=3 D) x=5,y=4,a=1 正确答案是: D 2五、 当从键盘上输入字符“12134211〞下面程序的 输出结果是( )。 #include int v1=0,v2=0,v3=0,v4=0,k; for(k=0;k<=7;k++) { scanf(\"%c\ switch(s) { default: v4++; case '1': v1++; case '3': v3++; case '2': v2++; } } printf(\"v1=%d,v2=%d,v3=%d,v4=%d\\n\); } A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8 正确答案是: C 2六、 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include for(i=0;i<=10;i+=2) { a+=i; ______; c+=b; } printf(\"偶数之和=%d\\n\ printf(\"奇数之和=%d\\n\ } A) i+=2 B) i++ C) b=b+1 D) b=i+1 正确答案是: D 27、 运行以下程序后,如果从键盘上输入12,8< 回车>, 那么输出结果为( )。 #include { int a,b,n1,n2,t; scanf(\"%d,%d\ if (n1>n2) { t=n1;n1=n2;n2=t;} a=n1;b=n2; while (b!=0) { t=a%b; a=b; b=t; } printf(\"%d,%d\\n\ } A) 2,6 B) 4,24 C) 4,12 D) 8,96 正确答案是: B 2八、 有如下程序 #include printf(\"Enter a numeral string\\n\"); gets(ch); for(j=0;ch[j]>'\\0';j++) s=10*s+ch[j]-'0'; printf(\"%ld\\n\ } 假设是运行时,从键盘上输入由数字组成的字符串, 该程序的功能是________。 A) 测字符数组ch的长度 B) 将数字字符串ch转换成十进制数 C) 将字符数组中的小写字母转换成大写 D) 将字符数组中的大写字母转换成小写 正确答案是: B 2九、 有如下程序 #include { char ch[80]=\"123abcdEFG*&\"; int j;long s=0; for(j=0;ch[j]>'\\0';j++) ; printf(\"%d\\n\ } 该程序的功能是________。 A) 测字符数组ch的长度 B) 将数字字符串ch转换成十进制数 C) 将字符数组ch中的小写字母转换成大写 D) 将字符数组ch中的大写字母转换成小写 正确答案是: A 30、 以下程序的输出结果是________。 #include int a[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}}; int i,j,s=0; for(i=0;i<4;i++) for(j=0;j<4;j++) if(i==0 || j==0 || i==3 || j==3) s+=a[i][j]; printf(\"%d\\n\ } A) 88 B) 66 C) 60 D) 50 正确答案是: B 3一、 设有以下定义语句 char str1[]=\"string\\"; 那么下面对函数strcpy的挪用中,错误的挪用是________。 (此函数用来复制字符串) A) strcpy(str1,\"HELLO1\"); B) strcpy(str2,\"HELLO2\"); C) strcpy(str3,\"HELLO3\"); D) strcpy(str4,\"HELLO4\"); 正确答案是: C 3二、 阅读程序: #include { char str1[]=\"how do you do\ scanf(\"%s\ printf(\"%s\ printf(\"%s\\n\ } 运行该程序,输入字符串HOW DO YOU DO,那么程序的输出结果是______。 A) HOW DO YOU DO B) HOWhow do you do C) How how do you do D) how do you do 正确答案是: B 33、 下面程序的输出是________。 #include { char s[]=\"23245322\"; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) {default: v4++; case '2': v1++; case '4': v3++; case '3': v2++; } printf(\"v1=%d,v2=%d,v3=%d,v4=%d\\n\); } A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8 正确答案是: C 34、 以下程序执行后的输出结果是________ 。 〔设a[0][0] 是数组a中的第1个元素〕 #include int a[4][5]={1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11}; int i,j,n=9; i=n/5; j=n-i*5-1; printf(\"NO. %d: %d , %d is %d\\n\ } A) 第n个元素所在的行和列及其该元素的值 B) 第n行的最大元素所在的行和列及其最大值 C) 第i行的最大元素所在的行和列及其最大值 D) 以上都不对 正确答案是: A 3五、 以下一组初始化语句中,正确的选项是________。 A) int a[8]={ }; B) int 正确答案是: C 3八、 函数fun的功能是:根据以下公式计算并返回S,n通过形参传入,n的值 大于等于0。划线处应填________。 1 1 1 1 a[9]={0,7,0,4,8}; C) int a[5]={9,5,7,4,0,2}; D) int a[7]=7*6; 正确答案是: B 3六、 假设有定义和语句: char s[10];s=\"abcd\";printf(\"%s\\n\ 那么程序运行后________(以下u代表空格)。 A) 输出abcd B) 输出a C) 输出abcduuuuu D) 编译不通过 正确答案是: D 37、 函数fun的功能是:根据以下公式计算S,n通 过形参传入,n的值大 于等于0。划线处应填________。 1 1 1 1 S=1 - ─ + ─ - ─ + … ─── 3 5 7 2n-1 float fun(int n) { float s=0.0,w,f=-1.0; int i=0; for(i=0;i<=n;i++) {________; w=f/(2*i+1); s+=w; } return s; } A) f=1 B) f=-1 C) f=-1*f D) f=0 S=1 - ─ + ─ - ─ + … ─── 3 5 7 2n-1 float fun(int n) { float s=0.0,w,t,f=-1.0; int i; for(i=0;i 3九、 以下程序的输出结果是________。 #include printf(\"%d\ void main() { int cc; for(cc=1;cc<4;cc++) fun( ); printf(\"\\n\"); } A) 2222 B) 2468 C) 222 D) 246 正确答案是: D 40、 以下程序的输出结果是 #include for(x=0,y=strlen(s)-1; x 4一、 以下程序执行后输出的结果是________。#include printf(\"%d\\n\ A) 3 B) 0 C) 5 D) 4 正确答案是: A 4二、 以下程序的输出结果是________。 #include \"ctype.h\" void 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); } void main() {char s[81]={ \"abcdefg\ space(s); puts(s);} A) ABCDEFG B) CEG C) ABCDE D) BDF 正确答案是: B 43、 下面程序的功能是,将字符数组a中的字符 逆序存放,划线处应 填入________。 #include { char a[80]= \"abcdefgh\"; fun(a); puts(a); } fun(char s[10]) { int x=0,y; char c; for(________;x #include { int a=5,b=7; fun(); printf(\"%d%d\\n\ A) 100200 B) 57 C) 200100 D) 75 正确答案是: B 4五、 读以下程序,下面的说法中错误的选项是________。 #include printf(\"%c\ str[i]='\\0'; pt(str); } void main( ) { char s[ ]={ \"Hello\ pt(s); } A) 在函数pt( )中利用了递归挪用 B) 在函数pt( )中利用了嵌套挪用 C) 程序的功能是使字符串s按反序存放 D) 程序的功能是将字符串\"Hello\"按反序输出 正确答案是: B 选择题(共 题),成绩() 一、 a,b均为整数,且b!=0,那么表达式 a/b*b+a%b的值是: A) a B) b C) a被b除的整数部份 D) a被b除的商的整数部份 正确答案是: A 二、 假设有代数式(3ae)/(bc),那么下面不正确 的C语言表达式是: A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 正确答案是: C 3、 x=43,ch='A',y=0, 那 么 表 达 式 (x>=y&&ch<'B'&&!y)的值是: A) 0 B) 语法错 C) 1 D) \"假\" 正确答案是: C 4、 假设已定义x和y是整型变量,x=2;,那么表达式y=2.75+x/2的值是: A) 5.5 B) 5 正确答案是: C 五、 假设已定义 int a,那么表达式 a=10,a+10,a++的值是: A) 20 B) 10 C) 21 D) 11 正确答案是: B 六、 有double型变量x=2.5,y=4.7,整型变量a=7,那么表达式 x+a%3*(int)(x+y)%2/4 的值是: C) 2.75 D) 0 正确答案是: B 7、 阅读下面的程序 #include int i,j; scanf(\"%2d %*3d %2d\ printf(\"%d%4d\ } 假设是从键盘上输入 12 345 67<回车> 那么程序的运行结果是: A) 12 67 B) 12 345 C) 12345 D) 程序语法犯错 正确答案是: A 八、 C语言中最简单的数据类型包括 A) 整型,实型,逻辑型 B) 整型,实型,字符型 C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型 正确答案是: B 九、 下面程序的输出是 #include printf(\"%d\\n\ } A) 17 B) 18 C) 23 D) 24 正确答案是: B 10、 假设有以下定义: int a,b,c1,c2,x,y; 那么 正确的switch 语句是 A) switch(a+b); B) switch(a*a+b*b) { case 1:y=a+b;break; { case 3: case 2:y=a-b;break; case 1:y=a+b;break; } case 3:y=b-a;break; } C) switch a D) switch(a-b) { case c1:y=a-b;break; { default:y=a*b;break; case c2:y=a*d;break; case 3: default:x=a+b; case 4:x=a+b;break; } case 10: case 11:y=a-b;break; } 正确答案是: D 1一、 以下不正确的if语句是( )。 A) if(x>y) printf(\"%d\\n\ B) if (x=y)&&(x!=0) x+=y; C) if(x!=y) scanf(\"%d\ D) if(x 输入的值应知足的条件是 #include scanf(\"%d,%d\ s=1; t=1; if (a<0) s=s+1; if (a>b) t=s+t; else if (a==b) t=5; else t=2*s; printf(\"t=%d\\n\ } A) a>b B) aa>b D) 0请读程序: #include { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch (y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; } printf(\"a=%d,b=%d\\n\ } 上面程序的输出结果是 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 正确答案是: A 14、 运行下面程序时,假设从键盘输入数据为 \"86\", 那么输出结果是( )。 #include \"stdio.h\" void main() { int t; scanf(\"%d\ if (t>=90) printf(\"A\\n\"); else if (t>=80) printf(\"B\\n\"); else if (t>=70) printf(\"C\\n\"); else if (t>=60) printf(\"D\\n\"); else printf(\"E\\n\"); printf(\"OK\\n\"); } A) B B) B OK C) B D) B OK C D E OK 正确答案是: C 1五、 运行下面程序时,从键盘输入数据为\"2,13,5 scanf(\"%d,%d,%d\ switch(a) { case 1: printf(\"%d\\n\ case 2: printf(\"%d\\n\ case 3: printf(\"%d\\n\ case 4: { if(c!=0) B) 输出* * * *。 C) 能够通过编译,可是不能通过连接,因此不能运行。 {printf(\"%d\\n\ else {printf(\"error\\n\");break;} } defualt: break; } } A) 10 B) 8 C) 65 D) error 正确答案是: B 1六、 以下程序的输出结果是 #include int a,b,d=241; a=d/100%6; b=1 && (-1); printf(\"%d,%d\\n\ } A) 6,1 B) 2,1 C) 6,0 D) 2,0 正确答案是: B 17、 下面的程序 #include if (x=y+z) printf(\"* * * *\"); else printf(\"# # # #\"); } A) 有语法错误不能通过编译。 D) 输出# # # #。 正确答案是: D 1八、 设a为整型变量,不能正确表达数学关系1010B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15) 正确答案是: A 1九、 假设输入字符串:abcde<回车>,那么以下while循环体将执行多少次。 while((ch=getchar())!='e') printf(\"*\"); A) 5 B) 4 C) 6 D) 1 正确答案是: B 20、 执行下面程序后sum的值是( )。 #include printf(\"%d\\n\ } A) 15 B) 14 C) 不确信 D) 0 正确答案是: A 2一、 阅读以下程序: #include void main( ) { int x; for(x=5;x>0;x--) if (x--<5) printf(\"%d,\ else printf(\"%d,\ 程序运行后的输出结果是( )。 A) 4,3,2 B) 4,3,1, C) 5,4,2 D) 5,3,1, 正确答案是: B 2二、 设有以下程序 #include 程序运行后,假设是从键盘上输入1298,那么输出结果为( )。 A) 892 B) 8921 C) 89 D) 921 正确答案是: B 23、 下面程序的运行结果是( )。 #include { if (i%m==0); if (i%n==0) { printf(\"%d\\n\ i++; } while(i!=0); } A) 7 B) 6 C) 5 D) 4 正确答案是: C 24、 下面程序段的输出结果是( )。 x=3; do { y=x--; if (!y) {printf(\"*\");continue;} printf(\"#\"); } while(x=2); A) ## B) ##* C) 死循环 D)输犯错误信息 正确答案是: C 2五、 以下程序运行后的输出结果是( )。 #include case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; } } printf(\"s=%d\\n\ } A)s=5 B)s=1 C)s=3 D)s=7 正确答案是: D 2六、 以下程序的输出结果是( )。 #include { for(k=1;k<=i;k++) printf(\" \"); for(j=0;j<=3;j++) printf(\"*\"); printf(\"\\n\"); } } A) **** B) **** **** **** **** **** C) **** D) *** **** *** **** *** 正确答案是: B 27、 设x和y均为int型变量,那么执行下面的循 环后,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 正确答案是: C 2八、 有如下程序 #include { char ch[80]=\"123abcdEFG*&\"; int j;long s=0; for(j=0;ch[j]>'\\0';j++) ; printf(\"%d\\n\ } 该程序的功能是________。 A) 测字符数组ch的长度 B) 将数字字符串ch转换成十进制数 C) 将字符数组ch中的小写字母转换成大写 D) 将字符数组ch中的大写字母转换成小写 正确答案是: A 2九、 以下程序的输出结果是________。 #include a[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=0; for(i=0;i<3;i++) for(j=i;j<3;j++) s+=a[i][j]; printf(\"%d\\n\ } A) 26 B) 36 C) 19 D) 22 正确答案是: D int 30、 当执行下面的程序时,如果输入ABC,那么输出结果是_________。 #include \"stdio.h\" #include \"string.h\" void main() { char ss[10]=\"12345\"; gets(ss); strcat(ss,\"6789\"); printf(\"%s\\n\ } A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC45678 正确答案是: A 3一、 下面的程序中第________行有错误(每行程序前面的数字是行号) 1 #include 4 float a[3]={0.0}; 5 int i; 6 for(i=0;i<3;i++) scanf(\"%d\ 7 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 8 printf(\"%f\\n\ 9 } A) 没有 B) 第4行 C) 第6行 D) 第8行 正确答案是: C 3二、 设有以下定义语句 char str1[]=\"string\\"; 那么下面对函数strcpy的挪用中,错误的挪用是________。 (此函数用来复制字符串) A) strcpy(str1,\"HELLO1\"); B) strcpy(str2,\"HELLO2\"); C) strcpy(str3,\"HELLO3\"); D) strcpy(str4,\"HELLO4\"); 正确答案是: C 33、 以下程序输出的结果是________。 #include { int a[ ]={1,2,3,4,5},i,j,s=0; j=1; for(i=4;i>=0;i--) { s=s+a[i]*j; j=j*10; } printf(\"s=%d\\n\ } A) s=12345 B) s=1 2 3 4 5 C) s=54321 D) s=5 4 3 2 1 正确答案是: A 34、 以下程序执行后的输出结果是________ 。 〔设a[0][0] 是数组a中的第1个元素〕 #include int a[4][5]={1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11}; int i,j,n=9; i=n/5; j=n-i*5-1; printf(\"NO. %d: %d , %d is %d\\n\ } A) 第n个元素所在的行和列及其该元素的值 B) 第n行的最大元素所在的行和列及其最大值 C) 第i行的最大元素所在的行和列及其最大值 D) 以上都不对 正确答案是: A 3五、 假设有定义语句:char s[100],d[100]; int int d=1; int fun( int p) { static int d=5; d+=p; printf(\"%d \ return (d); } j=0,i=0; ,且s中已赋字 符串,请在划线处填______以实现将字符串s中的内容拷贝到字符串d 中。〔注意:不得利用逗号表达式〕 while(s[i]) { d[j]=__________; j++; } d[j]=0; A) s[i] B) s[++i] C) s[i++] D) s[j] 正确答案是: C 3六、 下面程序输出的结果是________。 #include static int a[6]={1,2,3,4,5,6}; for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j]; printf(\"%d\\n\ } A) 数组a中首尾的对应元素的乘积 B) 数组a中首尾的对应元素的乘积之和 C) 数组a中相邻各元素的乘积 D) 数组a中相邻各元素的乘积之和 正确答案是: D 37、 以下程序的输出结果是________。 #include void main() { int a=3; printf(\"%d \\n\A) 6 11 11 B) 6 6 9 C) 6 12 12 D) 6 6 15 正确答案是: C 3八、 以下程序的输出结果是________。 #include int a[3][3]={1,2,3,4,5,6,7,8,9},b[10]; void f (int s[],int p[ ][3]) { s[0]=p[1][1]; } void main() { f(b,a); printf(\"%d\\n\ A) 1 B) 4 C) 7 D) 5 正确答案是: D 3九、 请读程序: #include s[j]+=s[j+1]; while (++j<2); } void main() { int k, a[10]={2,3,4,5,6}; for(k=1;k<3;k++) fun(a); for(k=0;k<5;k++) printf(\"%d\ 上面程序的输出结果是_________。 A) 56956 B) 34556 C) 57956 D) 1211456 正确答案是: D 40、 以下程序执行后输出的结果是________。 #include 4一、 设有如下的函数 void ggg(x) {float x; printf(\"\\n%d\ 那么函数的类型________。 A) 与参数x的类型一样 B) 是void C) 是int D) 无法确信 正确答案是: C 4二、 以下函数fun形参的类型是________。 fun( float x) { float y; y=3*x-4; return y; } A) int B) 不确信 C) void D) float 正确答案是: D 43、 以下函数strtod的功能是,将一个十进制数 字的字符串转换成与它等价 的有符号十进制整数值,划线处应填入________。 int strtod( char s[ ]) { int i=0,f=0; int n; n=0; if(s[0]== '-') {f=1;________; } for(;s[i]!= '\\0';i++) n= n*10+s[i]-'0'; if(f==1) return (-n); else return (n); } A) n=-1 B) i=1 C) n=n*(-1) D) i=0 正确答案是: B 44、 以下表达中,不正确的选项是________。 A) 利用static float a概念的外部变量存放在内存中的静态存储区 B) 利用float b概念的外部变量存放在内存中的动态存储区 C) 利用static float c概念的内部变量存放在内存中的静态存储区 D) 利用float d概念的内部变量存放在内存中的动态存储区 正确答案是: B 4五、 请读程序: #include { int x=6, y=7, z=8, r; r=func( (x--,y++,x+y),z--); printf(\"%d\\n\ 上面程序的输出结果是________。 A) 11 B) 20 C) 21 D) 31 正确答案是: C 选择题(共 题),成绩() 一、 以下表达正确的选项是: A) 在C程序中,主函数必需位于程序的最前面 B) 在C程序中,一行只能写一条语句 C) C程序的大体构造是程序行 D) C语句是完成某种程序功能的最小单位 正确答案是: D 二、 以下能正确定义变量a、b和c并为其赋值的 语句是: A) int a=5; b=5; c=5; B) int a,b,c=5; C) a=5, b=5, c=5; D) int a=5, b=5, c=5;正确答案是: D 3、 a,b均为整数,且b!=0,那么表达式a/b*b+a%b的值是: A) a B) b C) a被b除的整数部份 D) a被b除的商的整数部份 正确答案是: A 4、 以下符合C语言语法的表达式: A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B 五、 设x为int型变量,那么执行语句x=10和 x+=x-=x-x后,x的值为: A) 10 B) 20 C) 40 D) 30 正确答案是: B 六、 阅读下面的程序 #include char ch; scanf(\"%3c\ printf(\"%c\ } 假设是从键盘上输入 abc<回车> 那么程序的运行结果是: A) a B) b C) c D) 程序语法犯错 正确答案是: A 7、 请读程序: #include scanf(\"%2d%3f%4f\ printf(\"\\na=%d,b=%f,c=%f\\n\ } 假设运行时从键盘上输入9876543210 a=98,b=765,c=4321 B) a=10,b=432,c=8765 正确答案是: C 八、 C语言中最简单的数据类型包括 A) 整型,实型,逻辑型 B) 整型,实型,字符型 C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型 正确答案是: B 九、 假设要求在if后一对圆括号中表示a不等于 0的关系,那么能正确表示这一关 系的表达式为 A) a<>0 B) !a C) a=0 D) a 正确答案是: D 10、 假设有以下定义: float x; int a,b; 那么 正确的switch 语句是 A) switch(x) B) switch(x) { case 1.0:printf(\"*\\n\"); { case 1,2:printf(\"*\\n\"); case 2: printf(\"**\\n\") case 3:printf(\"**\\n\"); } } C) switch(a+b) D) switch(a-b); { case 1: printf(\"*\\n\") ; { case 1:printf(\"*\\n\"); case 2: printf(\"**n\"); case 2:printf(\"**\\n\"); } } 正确答案是: C 1一、 以下程序段运行结果是( )。 int x=1,y=1,z=-1; x+=y+=z; printf(\"%d\\n\ A) 1 B) 2 C) 4 D) 不确信的值 正确答案是: A 1二、 在执行以下程序时,为了使输出结果为:t=4 那么给a和b 输入的值应知足的条件是 #include scanf(\"%d,%d\ s=1; t=1; if (a<0) s=s+1; if (a>b) t=s+t; else if (a==b) t=5; else t=2*s; printf(\"t=%d\\n\ } A) a>b B) aa>b D) 0以下程序输出结果是 #include if (++m>5) printf(\"%d\\n\ else printf(\"%d\\n\ } A) 7 B) 6 C) 5 D) 4 正确答案是: D 14、 假设执行下面的程序从键盘上输入9,那么输 出结果是 #include scanf(\"%d\ if (n++<10) printf(\"%d\\n\ else printf(\"%d\\n\ A) 11 B) 10 C) 9 D) 8 正确答案是: B 1五、 请读程序: #include if (x<0.0) y=0.0; else if ((x<5.0) && (x!=2.0)) y=1.0/(x+2.0); else if (x<10.0) y=1.0/x; else y=10.0; printf(\"%f\\n\ } 假设运行时从键盘上输入2.0 正确答案是: C 1六、 选择出合法的if语句(设int x,y;): A) if (x!=y) if(x>y) printf(\"x>y\\n\"); else printf(\"x void main( ) { int k; scanf(\"%d\ switch (k) { case 1: printf(\"%d\\n\ case 2: printf(\"%d\\n\ case 3: printf(\"%d\\n\ case 4: printf(\"%d\\n\ default: printf(\"Full!\\n\"); } } A) 1 B) 2 C) 2 D) 1 3 2 4 3 5 4 正确答案是: D 1八、 执行以下程序,分别输入10和30,运行的结果分别是( )。 #include { case -1: y=0; break; case 0: y=x; break; case 1: y=10; break; case 2: case 3: y=-0.5*x+20; break; default: y=-2; } if (y!=-2) printf(\"y=%d\\n\ else printf(\"error\\n\"); } A) y=10 B) y=10 y=-2 y=10 C) y=10 D) y=0 y=5 y=-2 正确答案是: C 1九、 C语言中while 和do-while 循环的主要区别是( )。 A) do-while的循环体至少无条件执行一次 B) while 的循环操纵条件比do-while 的循环操纵条件严格 C) do-while 许诺从外部转到循环体内 D) do-while 的循环体不能是复合语句 正确答案是: A 20、 以下程序的输出结果是 #include for(a=1,b=1;a<=100;a++) { if (b>=10) break; if (b%5==1) { b+=5; continue; } } printf(\"%d\\n\ A) 101 B) 6 C) 4 D) 3 正确答案是: D 2一、 下面程序的输出结果是( )。 #include { unsigned int num,k; num=26;k=1; do { A) n=1 B) t=1 s+=t s=s/t s=s+t t+=s 正确答案是: A 23、 以下程序段的执行结果是( )。 k*=num%10; num/=10; } while(num); printf(\"%d\\n\ } A) 2 B) 12 C) 60 D) 18 正确答案是: B 2二、 下面函数的功能是根据以下的公式,返回满足精度∈要求的π值,请填空。 π 1 1 2 1 2 3 1 2 3 4 — = 1+— + — — + — — — + — — — — + …… 2 3 3 5 3 5 7 3 5 7 9 #include { double esp,s=0.0, t=1.0; int n; scanf(\"%f\ for(_________; t>esp; n++) { __________; t=n*t/(2*n+1);} s=2*s; printf(\"s=%f\\n\ } int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4) m++; printf(\"%d\\n\ A) 12 B) 15 C) 20 D) 25 正确答案是: C 24、 下面程序的输出结果是( ) #include A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 正确答案是: D 2五、 下面程序的输出结果是( ) #include for(i=1;i<6;i++) 。 。 { if (i%2) {printf(\"#\");continue;} 3 3 printf(\"*\"); } printf(\"\\n\"); } A) #*#*# B) ##### C) ***** D) *#*#* 正确答案是: A 2六、 有如下程序 #include { printf(\"%d\ while(!x); } 该程序的执行结果是 A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环 正确答案是: B 27、 以下程序的输出结果是( )。 #include int num=0; while (num<=2) { num++; printf( \"%d\\n\ } A) 1 B) 1 C) 1 D) 1 2 2 2 4 正确答案是: C 2八、 以下程序的输出结果是________。 #include char a[10]={'1','2','3','\\0','5','6','7','8','9',0}; printf(\"%s\\n\ } A) 123 B) 1230 C) 123056789 D) 1230567890 正确答案是: A 2九、 设有以下定义语句: char str[4][12]={\"aaa\ 下面对字符串的引用正确的选项是________。 A) strp[0][3] B) str[4] C) str[1] D) strp[1][4] 正确答案是: C 30、 以下给字符数组str定义和赋值正确的选项 是________。 A) char str[10]; str={\"China!\ B) char str[ ]={\"China!\ C) char str[10]; strcpy( str,\"abcdefghijkl\"); D) char str[10]={\"abcdefghijkl\ 正确答案是: B 3一、 假设有说明:char 置,程序划线处的正确 c[10]={'E','a','s','t','\\0'};,那么下述说法 中正确的选项是________。 A) c[7]不可引用 B) c[6]可引用,但值不确信 C) c[4]不可引用 D) c[4]可引用,其值为空字符 正确答案是: D 3二、 假 设 有 以 下 说 明 : char s1[ ]={\"tree\ 那么以下对数组元素或数组的输出语句中,正确的选项是________。 A) printf(\"%s%s\ B) printf(\"%c%c\ C) puts(s1);puts(s2); D) puts(s1,s2); 正确答案是: C 33、 下面程序运行后,输出结果是________。 #include { int a[10]={1,2,3,4,5,6},i,j; for(i=0;i++<3;) { j=a[i];a[i]=a[5-i];a[5-i]=j;} for(i=0;i<6;i++) printf(\"%d \ } A) 6 5 4 3 2 1 B) 1 2 3 4 5 6 C) 1 5 4 3 2 6 D) 1 5 3 4 2 6 正确答案是: D 34、 下面程序用来求二维数组的最大元素及其位 选择项是________。 #include { int a[5][4],i,j,max,row,col; for(i=0;i<5;i++) for(j=0;j<4;j++) scanf(\"%d\ max=a[4][0]; row=4;col=0; for(________) for(j=0;j<4;j++) if(maxprintf(\"max=%d,row=%d,col=%d\\n\} A) i=4;i>0;--i B) i=0;i<5;i++ C) i=-1;i<4;++i D) i=5;i>0;--i 正确答案是: B 3五、 要求下面程序运行后,输出二维数组a的前2列各元素之和,划线处 应填入________。 #include int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},i,j,k=0; for(i=0; i<3; i++) for(__________) k+=a[i][j]; printf(\"%d\\n\ } A) j=0; j<2; j++ B) j=0; j<4;j++ C) j=0; j<=2; j++ D) j=1; j<2;j++ 正确答案是: A 3六、 合法的数组定义是________。 A) int a[6]={\"string\ B) int a[5]={0,1,2,3,4,5}; C) char a={\"string\ D) char return (sqrt(6*s)); } A) 1.0/i/i B) 1.0/i*i C) 1/(i*i) D) 1/i/i 正确答案是: A 3九、 C语言中形参的缺省存储类别是________。 A) 自动(auto) B) 静态(static) a[]={0,1,2,3,4,5}; 正确答案是: D 37、 以下函数的功能是:在第一个循环中给前10 个数组元素依次赋1、2、3、 4、五、六、7、八、九、10;在第二个循环中使a数组中前10个元素中的值对 称折叠,变成一、二、3、4、五、五、4、3、二、1。划线处应填________。 fun( int a[]) { int i; for(i=1;i<=10;i++) ______=i; for(i=0;i<5;i++) ______=a[i]; } A) a[i-1]和a[10-i] B) a[i]和a[10-i] C) a[i-1]和a[9-i] D) a[i]和a[9-i] 正确答案是: C 3八、 函数pi的功能是根据以下近似公式求π值: (π*π)/6=1+1/(2*2)+1/(3*3)+……+1/(n*n) 请你在下面程序中的划线部份填入________,完成求π的功能。 #include \"math.h\" double pi(int n) { double s=0.0; int i; for(i=1;i<=n;i++) s=s+________; C) 寄放器(register) D) 外部(extern) 正确答案是: A 40、 请读程序: #include { char a[]=\"ABCDEFG\"; fun(a,3); puts(a); } 上面程序的输出结果是________。 A) GFEDCBA B) ABCDEFG C) CBADEFG D) GAGGAGA 正确答案是: C 4一、 下面函数的功能是________。 void sss(s,t) char s[ ],t[ ]; { int i=0; while( t[i]) { s[i]=t[i]; i++ ; } s[i]= '\\0'; } A) 求字符串的长度 B) 比拟两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串t复制到字符串s中 正确答案是: D 4二、 对于C语言的函数,以下表达中正确的选项是________。 A) 函数的概念不能嵌套,但函数挪用能够嵌套 B) 函数的概念能够嵌套,但函数挪用不能嵌套 C) 函数的概念和挪用都不能嵌套 D) 函数的概念和挪用都能够嵌套 正确答案是: A 43、 以下函数htoi的功能是,将一个十六进制数 字的字符串转换成与它等价 的十进制整数值,划线处应填入________。 int htoi( char s[ ]) { int i,n; n=0; for(i=0;s[i]!= '\\0';i++) { if(s[i]>= '0'&&s[i]<='9') n=n*16+s[i]-'0'; if(s[i]>= 'a'&&s[i]<='f') n=____________; if(s[i]>= 'A'&&s[i]<='F') n=n*16+s[i]-'A'+10; } return (n); } A) n*16+s[i]-'0' B) n*16+s[i]-'a'; C) n*16+s[i]-'a'+10 D) n*10+s[i]-'a'+10 正确答案是: C 44、 以下表达中,错误的选项是________。 A) 函数未被调历时,系统将不为形参分派内存单元 B) 实参与形参的个数应相等,且类型一样或赋值兼容 C) 实参能够是常量、变量或表达式 D) 形参能够是常量、变量或表达式 正确答案是: D 4五、 请读程序: #include do { s[j]+=s[j+1]; } while(++j<2); } void main() { int k, a[10]={1,2,3,4,5}; for(k=1; k<3; k++) fun(a); for(k=0; k<5; k++) printf(\"%d\ 上面程序的输出结果是 A) 34756 B) 23445 C) 35745 D) 12345 正确答案是: C 选择题(共 题),成绩() 一、 在C语言中,五种根本数据类型存储空间长度 的排列顺序是: A) char #include { unsigned int a=32767; printf(\"a=%d\\n\ } A) a=32768 B) a=-32767 C) a=32767 D) a=-1 正确答案是: C 3、 在C语言中,下面合法的长整型数是: A) 0L B) 4967 正确答案是: A 4、 以下表达中不正确的选项是: A) 空字符串(即两个双引号连写)只占一个存储单元 B) 字符型常量能够放在字符型变量中 C) 字符串常量能够放在字符型变量中 D) 字符型常量能够与整数混合运算,而字符串常量不能够 正确答案是: C 五、 设 a=1,b=2,c=3,d=4,那么表达式 a以下符合C语言语法的表达式: A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B 7、 以下程序的输出结果是: #include void main() { int a=12, b=12; printf(\"%d,%d\\n\ } A) 10,10 B) 12,12 C) 11,10 D) 11,13 正确答案是: D 八、 C语言程序的根本单位是 A) 程序行 B) 语句 C) 函数D) 字符 正确答案是: C 九、 C语言提供的合法的数据类型关键字是 A) Double B) short C) integer D) Char 正确答案是: B 10、 设a,b和c都是int型变量,且a=3,b=4,c=5, 那么下面的表达式中, 值为0的表达式是 A) 'a'&&'b' B) a<=b C) a||b+c&&b-c D) !((a1一、 执行以下程序后的输出结果是( )。 #include { int k=4,a=3,b=2,c=1; printf(\"%d\\n\ } A) 4 B) 3 C) 2 D) 1 正确答案是: D 1二、 以下程序的执行结果是( )。 #include \"stdio.h\" void main( ) { int a=8,b=-7,c=5; switch (a>0) { case 1: switch (b<0) { case 1:printf(\"@\");break; case 2:printf(\"!\");break; } case 0: switch (c!=0) { case 0:printf(\"*\");break; case 1:printf(\"#\");break; default:printf(\"$\");break; } default:printf(\"&\"); } printf(\"\\n\"); } A) *#$ B) & C) @#& D) @*& 正确答案是: C 13、 假设执行下面的程序从键盘上输入5,那么输 出结果是 #include scanf(\"%d\ if (x++>5) printf(\"%d\\n\ else printf(\"%d\\n\ } A) 7 B) 6 C) 5 D) 4 正确答案是: B 14、 下面程序的输出是 #include k=(a++<=0) && (!(b--<=0)); printf(\"%d %d %d\\n\ } A) 0 0 3 B) 0 1 2 C) 1 0 3 D) 1 1 2 正确答案是: C 1五、 执行下面的程序后,a的值为 #include 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 正确答案是: B 1六、 有如下程序: #include { int a=2,b=-1,c=2; if (a1九、 有以下程序段 int k=0; while (k=1) k++; while循环执行的次数是 A) 无穷次 B) 有语法错,不能执行 if (b<0) c=0; else c++; printf(\"%d\\n\ } 该程序的输出结果是 A) 0 B) 1 C) 2 D) 3 正确答案是: C 17、 下面程序的输出结果是( )。 #include 1八、 设a为整型变量,不能正确表达数学关系1010B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15) 正确答案是: A C) 一次也不执行 D) 执行一次 正确答案是: A 20、 以下程序段的输出结果是( )。 int k,n,m; n=10;m=1;k=1; while (k<=n) {m*=2;k+=4;} printf(\"%d\\n\ A) 4 B) 16 C) 8 D) 32 正确答案是: C 2一、 阅读以下程序: #include for(x=5;x>0;x--) if (x--<5) printf(\"%d,\ else printf(\"%d,\ 程序运行后的输出结果是( )。 A) 4,3,2 B) 4,3,1, C) 5,4,2 D) 5,3,1, 正确答案是: B 2二、 执行以下程序后,输出的结果是( ) #include 。 do {y--;} while (--y); printf(\"%d\\n\ } A) -1 B) 1 C) 8 D) 0 正确答案是: D 23、 下面程序的输出结果是( )。 #include A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 正确答案是: D 24、 以下循环体的执行次数是 #include for(i=0,j=1; i<=j+1; i+=2, j--) printf(\"%d \\n\ } A) 3 B) 2 C) 1 D) 0 正确答案是: C 2五、 下面程序的运行结果是( )。 #include do { if (i%m==0); if (i%n==0) { printf(\"%d\\n\ i++; } while(i!=0); } A) 7 B) 6 C) 5 D) 4 正确答案是: C 2六、 根据以下公式计算S,请填空。 1 1 1 1 S=1- ─ + ─ - ─ + ……+ ── 3 5 7 2n+1 #include float s=0.0,w,f=-1.0; scanf(\"%d\ for(i=0;i<=n;i++) { f=_____*f; w=f/(2*i+1); ________; } printf(\"s=%f\\n\ } s=s-w s+=w C) 1.0 D) 1 s+=f w=w+s 正确答案是: B 27、 以下程序运行后的输出结果是( )。 #include for(i=1;i<=n;i++) { m=1; for(j=1;j<=i;j++) m=m*j; sum=sum+m; } printf(\"sum=%d\\n\ } A)sum=9 B)sum=33 C)33 D)sum=18 正确答案是: B 2八、 数组a的赋值情况如下所示,那么执行语句a[2]++;后,a[1]和a[2]的值 别离是________。 a[0] a[1] a[2] a[3] a[4] ┌──┬──┬──┬──┬──┐ │ 10│ 20│ 30│ 40│ 50│ └──┴──┴──┴──┴──┘ A) 20和30 B) 20和31 C) 21和30 D) 21和31 正确答案是: B 2九、 以下程序执行后的输出结果是________。 #include printf(\"%s\\n\ } A) you&me B) you C) me D) err 正确答案是: B 30、 以下程序的输出结果是_________。 #include { char w[][10]={\"ABCD\ for(k=1;k<3;k++) printf(\"%s\\n\ } A) ABCD B) ABCE FGH EFG KL IJ M C) EFG D) EFGH JK IJKL O 正确答案是: D 3一、 有以下程序: #include #define N 4 void main() { char c[N];int i=0; for(;i bc 程序的输出结果是______。 A) abc B) a b c C) ab D) a c bc 正确答案是: D 3二、 以下给字符数组str定义和赋值正确的选项是________。 A) char str[10]; str={\"China!\ B) char str[ ]={\"China!\ C) char str[10]; strcpy( str,\"abcdefghijkl\"); D) char str[10]={\"abcdefghijkl\ 正确答案是: B 33、 当承受用户输入的含有空格的字符串时,应 使用________函数。 A) gets( ) B) getchar( )C) scanf( ) D) printf( ) 正确答案是: A 34、 下面程序的功能是________。 #include { char s[ ]=\"father\"; int i,j=0; for(i=1;i<6;i++) if(s[j]>s[i]) j=i; printf(\"%c,%d\\n\ A) 输出字符数组s中ASCII码最大的字符及位置 B) 输出字符数组s中ASCII码最小的字符及位置 C) 输出字符数组s中ASCII码最大的字符及字符串的长度 D) 输出字符数组s中ASCII码最小的字符及字符串的长度 正确答案是: B 3五、 下面的程序运行后,输出结果是________。 #include { int i,j,a[7][7],x=0; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=3*j+i; for(i=2;i<7;i++) x+=a[i][i]; printf(\"%d\\n\ } A) 8 B) 不确信值 C) 20 D) 0 正确答案是: B 3六、 设有定义语句:static char str[20]=\"Are you ready?\";,那么执行 printf(\"%d\\n\ 后的输出结果为________。(注意各单词之间有一空格) A) 16 B) 10 C) 2 D) 20 正确答案是: A 37、 以下程序中,主函数调用了LineMax函数,实 现在N行M列的二维数组中, 找出每一行上的最大值,划线处应填______。 #define M 4 #define N 3 void LineMax(int x[N][M]) { int i,j,p; for(i=0;i value in line %d 函数func的形参数个数是 A) 3 B) 4 C) 5 D) 有语法错误 正确答案是: A 40、 以下函数把b字符串连接到a字符串后面,并 is %d\\n\ } void main() { int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1}; LineMax(x); } A) i,x[i][j] B) j,x[i][j] C) j,x[i][p] D) i,x[i][p] 正确答案是: D 3八、 假设有以下调用语句,那么正确的fun函数首部是 void main() { ∶ ∶ int a;float x; ∶ ∶ fun(x,a); ∶ ∶ } A) void fun(int m,float x) B) void fun(float a,int x) C) void fun(int m,float x[]) D) void fun(int x,float a) 正确答案是: B 3九、 有 如 下 函 数 调 用 语 句func(rec1,rec2+rec3,func(rec1,rec2,rec3)); 返回a中新字符串的长度。 下面的两划线处应别离填入________。 int strcen(char a[],char b[]) { int num=0,n=0; while( a[num]!=______) num++; while(b[n]) { a[num]=b[n];num++;________;} return (num); } A) '\\n'和n++ B) '\\n'和num++ C) '\\0'和n++ D) '\\0'和num++ 正确答案是: C 4一、 以下函数调用语句中含有实参个数为________。 func((exp1,exp2),(exp3,exp4,exp5)); A) 1个 B) 2个 C) 4个 D) 5个 正确答案是: B 4二、 以下程序执行后输出的结果是________。 #include printf(\"%d\\n\ A) 3 B) 0 C) 5 D) 4 正确答案是: A 43、 下面程序的输出是_________。 int m=13; int fun(int x,int y) { int m=3; return(x*y-m); } void main() {int a=7,b=5; printf(\"%d\\n\ A) 1 B) 2 C) 7 D) 10 正确答案是: B 4、 下面函数的功能是________。 sss(s, t) char s[ ], t[ ]; { int i=0; while((s[i])&&(t[i])&&(t[i]== s[i])) i++;return (s[i]-t[i]);} A) 求字符串的长度 B) 比拟两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中 正确答案是: B 4五、 请读程序: #include for(i=0; i<=n; i++) r=r*b[i]; return r; } void main() { int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3); printf(\"%d\\n\ 上面程序的输出结果是________。 A) 720 B) 120 C) 24 D) 6 正确答案是: B 选择题(共 题),成绩() 一、 以下四组转义符中,均合法的一组是: A) '\' '\\\\' '\\n' B) '\\' '\\017' '\\x' C) '\\018' '\\f' '\\xab' D) '\\\\0' '\\101' '\\xif' 正确答案是: A 二、 假设有定义int a=12,n=5,那么表达式 a%=(n%2)运算后,a的值: A) 0 B) 1 C) 12 D) 6 正确答案是: A 3、 以下符合C语言语法的表达式: A) d=9+e+f=d+9 B) d=9+e,f=d+9 C) d=9+e=e++,d+9 D) d=9+e++=d+7 正确答案是: B 4、 执行下面程序段后,输出结果是: int a; int b=65536; a=b; printf(\"%d\\n\ A) 65536 B) 0 C) -1 D) 1 正确答案是: A 五、 下面程序的输出结果是: #include int a,b,c; int d; b=(a=32767, a++); c=d=0xffff; printf(\"%x,%d,%d,%d\\n\ } A) 8000,32767,65535,65535 -1,-1,32767,8000 C) -1,-1,-1,-1 D) 32767,-1,-1,-1 正确答案是: A 六、 阅读下面的程序 #include int i,j; scanf(\"%2d %*3d %2d\ printf(\"%d%4d\ } 假设是从键盘上输入 12 345 67<回车> 那么程序的运行结果是: A) 12 67 B) 12 345 C) 12345 D) 程序语法犯错 正确答案是: A 7、 请读程序: #include scanf(\"%2d%3f%4f\ printf(\"\\na=%d,b=%f,c=%f\\n\ } 假设运行时从键盘上输入9876543210 a=98,b=765,c=4321 B) a=10,b=432,c=8765 B) 正确答案是: C 八、 请选出可用作C语言用户标识符的一组标识 符 A) void B) a3_b3 C) For D) 2a define _123 -abc DO WORD IF Case sizeof 正确答案是: B 九、 下面合法的C语言字符常量是 A) '\' B) \"A\" C) 65 D) A 正确答案是: A 10、 表达式: 10!=9的值是 A) true B) 非零值 C) 0 D) 1 正确答案是: D 1一、 为了防止嵌套的if-else语句的二义性,C语言规定else总是 与( )组成配对关系。 A) 缩排位置一样的if B) 在其之前未配对的if C) 在其之前尚未配对的最近的if D) 同一行上的if 正确答案是: C 1二、 int x=10,y=20,z=30,那么执行 if (x>y) z=x;x=y;y=z; 语句后,x、y、z 的值是( )。 A) x=10,y=20,z=30 B) x=20,y=30,z=30 C) x=20,y=30,z=10 D) x=20,y=30,z=20 正确答案是: B 13、 以下条件表达式中能完全等价于条件表达式 x的是( )。 A) (x==0) B) (x!=0) C) (x==1) D) (x!=1) 正确答案是: B 14、 执行以下程序后的输出结果是( )。 #include { int k=4,a=3,b=2,c=1; printf(\"%d\\n\ } A) 4 B) 3 C) 2 D) 1 正确答案是: D 1五、 下面程序的输出是 #include k=(a++<=0) && (!(b--<=0)); printf(\"%d %d %d\\n\ } A) 0 0 3 B) 0 1 2 C) 1 0 3 D) 1 1 2 正确答案是: C 1六、 以下程序的输出结果是 main( ) { int a=100; if (a>100) printf(\"%d\\n\ else printf(\"%d\\n\ } A) a<=100 B) 100 C) 0 D) 1 正确答案是: D 17、 执行以下程序,输入为3的输出结果是( ) #include scanf(\"%d\ switch (k) { case 1: printf(\"%d\\n\ case 2: printf(\"%d\\n\ case 3: printf(\"%d\\n\ case 4: printf(\"%d\\n\ default: printf(\"Full!\\n\"); } } A) 3 B) 3 2 C) 2 D) 2 。 1 正确答案是: B 1八、 运行下面程序时,假设从键盘输入数据为\"6,5,7 那么输出结果是( )。 #include