- 若有说明语句:char c = ‘\72’ ; 则变量 c 中存放的是
A)2 个字符 B)1 个字符 C)3 个字符 D)说明语句不合法 答案 B - 以下叙述正确的是
A)do-while 语句构成的循环,当 while 语句中的表达式值为 0 时 结束循环 B)do-while 语句和 while 构成的循环功能相同 C)while 语句构成的循环,当 while 语句中的表达式值为非 0 时结 束循环 D)do-while 语句构成的循环,必须用 break 语句退出循环 答案:A - 有以下程序
#include <stdio.h> main() { int a, b, c=241; a = c/100 % 9; b = ( -1 )&&( -1 ); printf("%d, %d\n", a, b ); } 程序运行后的输出结果是 A) 6,0 B)6,1 C) 2,1 D)2,0 答案:C - 有以下程序
#include <stdio.h> main( ) { int i ; for( i=1; i<= 5; i++ ) { if( i % 2 ) printf( "" ); else continue; printf( “#” ); } printf( “$\n” ); } 程序运行后的输出结果是 A) # * # * # $ B)* # * # * $ C)* # * # $ D)* # * # * # * $ 答案:A - 已知 a=5,b=6,c=7,d=8,m=2,n=2,执行
(m=a>b)&&(n=c<d)后 n 的值为 A)0 B) 2 C)1 D)-1 答案:B - 有以下程序
#include <stdio.h> main() { int x=23; do { printf("%2d\n", x–); } while( !x ); } 程序的执行结果是 A)输出 23 B)输出 321 C)不输出任何内容 D)陷入无限循环 答案:A - 有以下程序
#include <stdio.h> main() { char c; while( ( c=getchar() )!= ‘\n’ ) { switch( c-‘2’ ) { case 0 : case 1 : putchar( c+4 ); case 2 : putchar( c+4 ); break; case 3 : putchar( c+3 ); default : putchar( c+2 ); break; } } printf( “\n” ); } 程序运行后从第一列开始输入以下数据 2473<回车> 程序的输出结果是 A) 4444 B) 668977 C)6677877 D)68766 答案:B - 有以下程序
#include <stdio.h> main() { int i=0, sum=1; do { sum += i++ ; } while( i<6 ); printf("%d \n",sum); } 程序的输出结果是 A)18 B)16 C)20 D)22 答案:B - 有以下程序段,若变量已正确定义并赋值
if(a>b)printf(“x=%d,”, x); else printf(“y=%d,”, y); if(a<=b)i++; else j++; 则与此程序段功能相同的选项是 A)if(a>b){printf(“x=%d,”, x);j++;} else {printf(“y=%d,”, y);i++;} B)if(a>b){printf(“x=%d,”, x);i++;} else {printf(“y=%d,”, y);j++;} C)if(a<=b){printf(“x=%d,”, x);i++;} else {printf(“y=%d,”, y);j++;} D)if(a>=b){printf(“x=%d,”, x);i++;} else {printf(“y=%d,”, y);j++;} 答案:A - 以下程序的功能是判断输入的一个整数是否能被 3 或 7 整除,
若能整除,输出 YES,否则输出 NO。在下划线处应填入的选项是 #include <stdio.h> main() { int k; printf(“Enter a int number : “); scanf(”%d”, &k ); if ________ printf(“YES\n”); else printf(“NO\n”); } A)( (k%3 == 0) || (k%7 == 0) ) B)(k/3 == 0) || (k/7 == 0) C)( (k%3=0) || (k%7=0) ) D)( (k%3 == 0)&& (k%7 == 0) ) 答案:A - 对于 if(表达式) 语句,以下叙述正确的是
A)“表达式”的值可以是任意合法的数值 B)在“表达式”中不能出现变量 C)在“表达式”中不能出现常量 D)“表达式”的值必须是逻辑值 答案:A - 有如下程序
#include <stdio.h> main() { int a = 0, b = 1; if (a++ && b++) printf(“T”); else printf(“F”); printf(“a=%d,b=%d\n”, a, b); } 程序运行后的输出结果是 A) Ta=1,b=2 B)Fa=0,b=2 C) Fa=1,b=1 D)Ta=0,b=1 答案:C - 有如下程序
#include <stdio.h> main() { int i, data; scanf("%d", &data); for (i=0; i<5; i++) { if (i < data) continue; printf("%d,", i); } printf("\n"); } 程序运行时,从键盘输入:3<回车>后,程序输出结果为 A) 0,1,2,3,4,5, B)1,2,3,4, C) 3,4, D)0,1,2, 答案:C - 有如下程序
#include <stdio.h> main() { int i, data; scanf("%d", &data); for (i=0; i<5; i++) { if (i > data) break; printf("%d,", i); } printf("\n"); } 程序运行时,从键盘输入:3<回车>后,程序输出结果为 A) 0,1, B) 0,1,2,3, C)3,4,5, D)3,4, 答案:B - 有如下程序
#include <stdio.h> main() { char a = ‘3’, b = ‘A’; int i; for (i=0; i<6; i++) { if (i % 3) putchar(a + i); else putchar(b + i); } printf("\n"); } 程序运行后的输出结果是 A)A45D78 B)ABC678 C)34CD78 D)34AB78 答案:A - 有如下程序
#include <stdio.h> main() { int i; for (i=0; i<5; i++) putchar(‘9’ - i); printf("\n"); } 程序运行后的输出结果是 A) 54321 B) 98765 C)‘9’‘8’‘7’‘6’‘5’ D)‘43210’ 答案:B - 有如下程序
#include <stdio.h> main() { int x = 0x13; if (x = 0x18) printf(“T”); printf(“F”); printf("\n"); } 程序运行后的输出结果是 A) T B) TF C)F D)TFT 答案:B - 有如下程序
#include <stdio.h> main() { int a = 0, b = 1; if (++a = = b++) printf(“T”); else printf(“F”); printf(“a=%d,b=%d\n”, a, b); } 程序运行后的输出结果是 A)Ta=1,b=2 B)Fa=1,b=2 C)Ta=0,b=1 D)Fa=0,b=2 答案:A - 有如下程序
#include <stdio.h> main() { int i = 1; for (printf("%d", i); i<4; i++) printf("%d", i); printf("\n"); } 程序运行后的输出结果是 A) 0123 B)123 C) 1123 D)001 答案:C - 有如下程序
#include <stdio.h> main() { char ch = ‘A’; while (ch < ‘D’) { printf("%d", ch - ‘A’); ch++; } printf("\n"); } 程序运行后的输出结果是 A) 123 B)ABC C)abc D) 012 答案:D - 有如下程序
#include <stdio.h> main() { if (’\0’ == 0) putchar(‘X’); if (‘0’ == 0) putchar(‘Y’); if (‘a’ > ‘b’) putchar(‘Z’); printf("\n"); } 程序运行后的输出结果是 A)X B)XYZ C)YZ D)Y 答案:A - 有如下程序
#include <stdio.h> main() { char ch = ‘M’; while (ch != ‘K’) { ch --; putchar(ch); } printf("\n"); } 程序运行后的输出结果是 A) MN B) LK C)OP D)MM 答案:B - 有以下程序段
int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a>b) a=b; if(a>c) a=c; printf("%d\n",a); 该程序段的功能是 A)输出 a、b、c 中的最小值 B)输出 a、b、c 中的最大值 C)输出 a 的原始值 D)输出 a、b、c 中值相等的数值 答案:A - 有以下程序
#include <stdio.h> main() { int x; scanf("%d",&x); if(x>10) printf(“1”); else if(x>20) printf(“2”); else if(x>30) printf(“3”); } 若运行时输入:35<回车>,则输出结果是 A)1 B)2 C)3 D)123 答案:A - 若要实现 total=1+2+3+4+5,以下程序段错误的是
A)int i=1,total=1; while(i<5) { total+=i; i+=1; } B)int i=1,total=0; while(i<=5) { total+=i; i+=1; } C)int i=0,total=0; while(i<5) { i+=1; total+=i; } D)int i=0,total=0; while(i<=5) { total+=i; i+=1; } 答案:A - 有以下程序
#include <stdio.h> main() { int i=1,k=0; for( ; i<6 ; ) { switch(i%3) { case 0: k++; case 1: k++; break; case 2: k++; continue; } i+=1; } printf("%d\n",k) 程序的运行情况是 A) 输出 6 B) 形成无限循环 C)输出 5 D)输出 4 答案:B - 以下不能输出小写字母 a 的选项是
A)printf("%c\n",“a”); B)printf("%c\n",‘A’+32); C)putchar(97); D)putchar(‘a’); 答案:A - 有以下程序段
char c1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3); 若要给 c1、c2、c3 分别输入字母 A、B、C,则以下对输入形式的 描述正确的是 A)字母 A、B、C 之间不能有分隔符 B)字母 A、B、C 之间可以用空格分隔 C)字母 A、B、C 之间可以用回车符分隔 D)字母 A、B、C 之间可以用 Tab 键分隔 答案:A - 有以下程序段
scanf("%d%d%d",&a,&b,&c); if(a<b) a= =b; if(a<c) a= =c; printf("%d\n",a); 该程序段的功能是 A) 输出 a、b、c 中值相等的数值 B)输出 a、b、c 中的最大值 C)输出 a、b、c 中的最小值 D) 输出 a 的原始值 答案:D - 以下程序段中,不能实现“如果 a<b 则 x=10,否则 x=-10”
的是 A)if(a<b) x=10; if(b<a) x=-10; B)if(a<b) x=10; else x=-10; C)x=-10; if(a<b) x=10; D)x=(a>=b)? -10:10; 答案:A - 以下能够实现计算 5!的程序段是
A)int fac=1,k=0; do{ k++; fac*=k;} while(k<5); B)int fac=0,k=1; do{ fac*=k; k++;} while(k<5); C)int fac=1,k=1; do{ k++; fac*=k;} while(k<=5); D)int fac=1,k=0; do{ fac*=k; k++;} while(k<5); 答案:A - 有以下程序
#include <stdio.h> main() { int x=0,y=6; do { while(–y) x++;} while(y–); printf("%d,%d\n",x,y); } 程序的运行结果是 A) 5,0 B)6,0 C) 5,-1 D)6,-1 答案:C - 有以下程序
#include <stdio.h> main() { char *s=“120119110”; int n0,n1,n2,nn,i; n0=n1=n2=nn=i=0; do{ switch(s[i++]) { default : nn++; case ‘0’ : n0++; case ‘1’ : n1++; case ‘2’ : n2++; } } while(s[i]); printf(“n0=%d,n1=%d,n2=%d,nn=%d\n”,n0,n1,n2,nn); } 程序的运行结果是 A) n0=4,n1=8,n2=9,nn=1 B)n0=2,n1=5,n2=1,nn=1 C)n0=2,n1=7,n2=10,nn=1 D) n0=3,n1=8,n2=9,nn=1 答案:D - 有以下程序
#include <stdio.h> int m1(int x,int y) { return x<=y ? x :y; } int m2(int x,int y) { return x<=y ? y :x; } int fun(int a,int b) { return a+b; } main() { int x=2,y=3,z=1; printf("%d\n", fun(m1(x,y),m2(y,z))); } 程序的运行结果是 A) 6 B) 5 C)4 D)3 答案:B - 若有定义:int a=0,b=0,c=0,d=0; ,对于表达
式 (a++ && b++) ? c++ : d++,以下关于其执行顺序的叙述正确 是 A)先计算表达式 a++,其值为 0,由此即可确定(a++ && b++) 值为 0,因此计算 d++ B)先计算表达式 a++,其值为 0;再计算表达式 b++,其值为 0, 由此可确定(a++ && b++)值为 0,因此计算 d++ C)先计算表达式 a++,其值为 1;再计算表达式 b++,其值为 1, 由此可确定(a++ && b++)值为 1,因此计算 c++ D)先计算表达式 b++,其值为 1;再计算表达式 a++,其值为 1, 由此可确定(a++ && b++)值为 1,因此计算 c++ 答案:A - 有以下程序
#include <stdio.h> main( ) { int a,b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { default: printf("%d,", ++b); case 1: printf("%d,", ++b); case 2: printf("%d,", ++b); } } } 执行时输入:1 2 3<回车>,则输出结果是 A) 2,3,4, B) 2,3,3,4,5,6, C)2,2,3,4,4,4, D)2,3,4,3,4,4, 答案:B - 有以下程序
#include <stdio.h> main( ) int a=-1, b=-1; for(; ++a;) ++b; printf("%d,%d\n", a, b); } 程序运行后的输出结果是 A) 0,0 B) 0,-1 C)-1,-1 D)结果不确定 答案:B - 有以下程序
#include <stdio.h> main( ) { int a=0, b=0; for(; a<5; a++) { if (a%2==0) continue; b += a; break; } printf("%d \n", b); } 程序运行后的输出结果是 A)1 B)4 C)0 D)10 答案:A - 以下不属于合法 C 语言转义字符的是
A)’\c’ B)’\a’ C)’\b’ D)’\r’ 答案:A - 有以下程序
#include <stdio.h> main( ) { char c; for(; (c=getchar()) != ‘#’; ) putchar(++c); } 执行时如输入为:abcdefg##<回车> , 则输出结果是 A) bcdefgh$$ B)bcdefgh$ C) bcdefgh D)abcdefg 答案:C - 若有定义:int a=0,b=0,c=0,d=0;,以下关于 C 语言表达式:
(++a || ++b) ? ++c : ++d 执行顺序的叙述正确的是 A)先计算表达式++a,其值为 1,由此可确定(++a || ++b)值为 1, 因此计算++c B)先计算表达式++a,其值为 1;再计算表达式++b,其值为 1, 由此可确定(++a || ++b)值为 1,因此计算++c C)先计算表达式++b,其值为 1;再计算表达式++a,其值为 1, 由此可确定(++a || ++b)值为 1,因此计算++c D)先计算++a,++b,++d,使得 a,b,d 的值都为 1,由此可确定 (++a || ++b)值为 1,因此计算++c 答案:A - 有以下程序
#include <stdio.h> main( ) { int a,b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { default: printf("%d,", b++); case 1: printf("%d,", b++); case 2: printf("%d,", b++); } } } 程序运行时输入:1 2 3<回车>,则输出结果是 A) 1,2,3, B) 1,2,2,3,4,5, C)1,2,3,2,3,3, D)1,1,1,2,2,3 答案:B - 有以下程序
#include <stdio.h> main( ) { int a = 1, b = 1; for( ; a–; ) b–; printf("%d,%d\n", a, b); } 程序运行后的输出结果是 A)-1,0 B)0,0 C)-1,-1 D)1,1 答案:A - 有以下程序
#include <stdio.h> main( ) { int a=1, b=0; for(; a<5; a++) { if (a%2 = = 0) break; continue; b += a; } printf("%d \n", b); } 程序运行后的输出结果是 A) 1 B) 0 C)10 D)4 答案:B - 若有定义:
char s[30] = {0}; 运行时输入: This is a string.<回车> 则以下不能正确读入上述字符串到字符数组 s 中的选项是 A)scanf("%s", s); B)gets(s); C)for (i=0; (c=getchar()) != ‘\n’; i++) s[i] = c; D)i = 0; while ((c=getchar())!=’\n’) s[i++] = c; 答案:A - 有以下程序
#include <stdio.h> main( ) { char c; c=getchar(); do { putchar(c++); } while((c=getchar()) != ‘#’); } 程序运行时从第一列开始输入:abcdefg##<回车>,则输出结果 是 A) abcdefg# B)bcdefgh C) abcdefg D)bcdefgh$ 答案:C - 对于 if(表达式) 语句,以下叙述正确的是
A)“表达式”的值可以是任意合法的数值 B)变量不能出现在“表达式”中 C)常量不能出现在“表达式”中 D)如果“表达式”的值不是逻辑值,程序会出编译错误 答案:A - 有如下程序
#include <stdio.h> main( ) { int a = 0, b = 1; if (a++ && b++) printf(“TRUE”); else printf(“FALSE”); printf("_OUT:a=%d,b=%d\n", a, b); } 程序运行后的输出结果是 A) FALSE_OUT:a=0,b=2 B) FALSE_OUT:a=1,b=1 C)TRUE_OUT:a=1,b=2 D)TRUE_OUT:a=0,b=1 答案:B - 有如下程序
#include <stdio.h> main( ) { int i, data; scanf("%d", &data); for (i=0; i<5; i++) { if (i < data) continue; printf("%d-", i); } } 程序运行时,从键盘输入:3<回车>后,程序输出结果为 A)3-4- B)1-2-3- C)0-1-2- D)0-1-2-3- 答案:A - 有如下程序
#include <stdio.h> main( ) { int i, data; scanf("%d", &data); for (i=0; i<10; i++) { if (i > data) break; printf("%d,", i); } } 程序运行时,从键盘输入:3<回车>后,程序输出结果是 A) 1,2,3, B) 0,1,2,3, C)2,3,4, D)3,4,5, 答案:B - 有如下程序
#include <stdio.h> main( ) { char a = ‘0’, b = ‘a’; int i; for (i=0; i<4; i++) { if (i % 3) putchar(a + i); else putchar(b + i); } } 程序运行后的输出结果是 A) 10ab B)ab3d C) a12d D)11ac 答案:C - 有如下程序
#include <stdio.h> main( ) { int i; for (i=0; i<5; i++) putchar(‘Z’ - i); } 程序运行后的输出结果是 A)ZYXWV B)VWXYZ C)‘X’‘Y’‘Z’‘W’‘V’ D)‘ABCDE’ 答案:A - 有以下程序
#include <stdio.h> main( ) { int x = 0x13; if (x = 0x12) printf(“True”); printf(“False\n”); } 程序运行后的输出结果是 A) False B)True C) TrueFalse D)TrueFalseTrue 答案:C - 有以下程序
#include <stdio.h> main( ) { int a = 0, b = 1; if (++a = = b++) printf(“1”); else printf(“0”); printf(“a=%d,b=%d\n”, a, b); } 程序运行后的输出结果是 A) 0a=1,b=2 B) 1a=1,b=2 C)1a=0,b=1 D)0a=0,b=2 答案:B - 有以下程序
#include <stdio.h> main( ) { int i = 4; for ( printf("%d", i); i<2; i++) printf("%d", i); printf("\n"); } 程序运行后的输出结果是 A)4 B)12 C)1 D)0 答案:A - 有以下程序
#include <stdio.h> main( ) { char ch = ‘B’; while (ch < ‘E’) { printf("%d", ch - ‘A’); ch++; } printf("\n"); } 程序运行后的输出结果是 A) ABC B) 123 C)abc D)012 答案:B - 有以下程序
#include <stdio.h> main( ) { if (’\0’ = = 0) putchar(‘1’); if (‘0’ = = 0) putchar(‘2’); if (‘a’ > ‘b’) putchar(‘3’); } 程序运行后的输出结果是 A)1 B)123 C)23 D)3 答案:A - 有以下程序
#include <stdio.h> main( ) { char ch = ‘M’; while (ch != ‘K’) { putchar(ch); ch --; } } 程序运行后的输出结果是 A) OP B)MK C) ML D)mm 答案:C - 字符数组 a 和 b 中分别存储了字符串,判断字符串 a 和 b 相
等,应当使用的是 A)if(strcmp(a,b)= =0) B)if(strcpy(a,b)) C)if(a= =b) D)if(a=b) 答案:A - 以下正确的转义字符是
A) ‘\0x41’ B) ‘\x41’ C)’\X41’ D)’\0X41’ 答案:B - 为了避免在嵌套的 if-else 语句中产生二义性,C 语言规定与
else 子句配对是 A)在其之前最近的不带 else 的同层 if 子句 B)在其之后最近的不带 else 的 if 子句 C)与其缩排位置相同的 if 子句 D)与其在同一行上的 if 子句 答案:A - 有如下程序段
int k; for(k=2;k==0;) printf("%d",k–); 则 for 循环体执行的次数是 A) 2 次 B)1 次 C) 0 次 D)无限次 答案:C - 有如下程序段
for (i=0; i<10; i++) if (i <= 5) break; 则循环结束后 i 的值为 A)0 B)1 C)5 D)10 答案:A - 以下程序段中,与其他三个功能不同的程序段是
A)s=0;i=1; for( ; ; ) {s+=i; i++; if(i<=10) break;} B)s=0,i=1; for( ; i<=10; ) {s+=i,i++;} C)s=0; for(i=1; i<=10; i++) {s+=i;} D)for(s=0,i=1; i<=10; s+=i,i++) ; 答案:A - 设有定义:int a=0,b=1;,以下表达式中,会产生“短路”
现象,致使变量 b 的值不变的是 A)a++ && b++ B)a++ || ++b C)++a && b++ D)+a || ++b 答案:A - 有以下程序
#include <stdio.h> main( ) { int x=1, y=2, z=3; if(x>1) if(y>x) putchar(‘A’); else putchar(‘B’); else if(z<x) putchar(‘C’); else putchar(‘D’); } 程序的运行结果是 A) B B)C C) D D)A 答案:C - 有语句:k=x<y ?(y<z?1:0):0; ,以下选项中,与此语句功能
相同的是 A)if(x<y && y<z) k=1; else k=0; B)if(x<y) k=0; else if(y<z) k=1; C)if(x<y) if(y<z) k=1;else k=0; D)if(x<y || y<z) k=1; else k=0; 答案:A - 有如下程序段
for(i=0;i<10;i++) if(i>5) break; 则循环结束后 i 的值为 A) 9 B)5 C) 6 D)10 答案:C - 有以下程序
#include <stdio.h> main( ) { int i,a; for (i=0; i<=10; i++) a=i; printf("%d,%d\n", i, a); } 程序的运行结果是 A)11,10 B)10,10 C)10,11 D)11,11 答案:A - 有以下程序段
int x ,i ; for(i=1;i<=100;i++) { scanf("%d",&x); if(x<0) continue; printf("%4d\n",x); } 下面针对上述程序段的描述正确的是 A)最多可以输出 100 个非负整数 B)当 x<0 时结束整个循环 C)当 x>=0 时没有任何输出 D)printf 函数调用语句总是被跳过 答案:A - 以下与数学表达式 “0<x<5 且 x≠2” 不等价的 C 语言逻辑
表达式是 A)(0<x<5) && (x!=2) B)0<x && x<5 && x!=2 C)x>0 && x<5 && x!=2 D)(x>0 && x<2) || (x>2 && x<5) 答案:A - 有以下程序
#include <stdio.h> main( ) { int a, b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { default: printf("%d,",b+1); continue; case 1: printf("%d,", b+1); case 2: printf("%d,", b+1); continue; } } } 执行时输入:1 2 3<回车>,则输出结果是 A) 2,2,3,4,4,4, B)2,3,4, C) 2,2,3,4, D)2,3,3,4,5,6, 答案:C - 有以下程序
#include <stdio.h> main( ) { int a=-2, b=2; for(; ++a && --b;) ; printf("%d,%d\n", a,b); } 程序运行后的输出结果是 A) 1,-1 B)0,0 C) 0,1 D)0,2 答案:C - 有以下程序
#include <stdio.h> main( ) { int a=0, b=0; for( ;a<7; a++ ) { if (a%2==0) continue; b += a; continue; } printf( “%d \n”, b ); } 程序运行后的输出结果是 A) 0 B)4 C)1 D) 9 答案:D - 以下选项中是非转义字符的是
A)’\d’ B)’\t’ C)’\b’ D)’\r’ 答案:A - 有以下程序
#include <stdio.h> main( ) { char c; for (; ( c=getchar()) != ‘#’; ) { if ( c>=‘a’ && c<=‘z’ ) c = c - ‘a’ + ‘A’; putchar(++c); } } 执行时输入:aBcDefG##<回车>, 则输出结果是 A) bcdefgh B)ABCDEFG C)AbCdEFg D) BCDEFGH 答案:D - 以下选项中错误的是
A)printf("%s\n", ‘s’); B)printf("%d %c\n", ‘s’,‘s’); C)printf("%c\n", ‘s’- 32); D)printf("%c\n", 65); 答案:A - 若有定义:char ch;当执行以下循环时从键盘输入 abcde<
回车>,将输出的个数是 while((ch=getchar())==‘e’) printf(""); A)1 B)4 C)5 D)0 答案:D - 有以下程序
#include <stdio.h> main( ) { int t; scanf("%d", &t ); if( t++ < 6 ) printf("%d\n", t); else printf("%d\n", t–); printf("\n"); } 执行时输入:6<回车>,则输出结果是 A)5 B)8 C)6 D)7 答案:D - 有以下程序
#include <stdio.h> main() { int x=10,y=11,z=12; if( y< z ) x=y; y=z; z=x; printf(“x=%d y=%d z=%d\n”, x, y, z ); } 程序运行后的输出结果是 A)x=11 y=12 z=11 B)x=10 y=10 z=10 C)x=11 y=11 z=10 D)x=10 y=10 z=12 答案:A - 有以下程序
#include <stdio.h> #include <math.h> main() { double x, y, z; scanf("%lf%lf",&x,&y ); z= x/ y; while(1) if( fabs(z) > 1.0 ) { x=y; y=x; z=x/y; } else break; printf(“y=%f \n”, y ); } 执行时输入:3.6 2.4<回车>,则输出结果是 A)2.400000 B)1.500000 C)1.600000 D)2.000000 答案:A - 以下选项中与 ( !a== 0 )的逻辑值不等价的表达式是
A)( a== !0 ) B)a C)(a>0 || a<0) D)(a!= 0 ) 答案:A - 对于 if(表达式) 语句,以下叙述正确的是
A)“表达式”可以是常量 B)“表达式”的值只能是整数值 C)“表达式”不能是变量 D)“表达式”中不可以出现字符型变量的比较 答案:A - 有以下程序
#include <stdio.h> main( ) { int a = 10, b = 11; if (++a = = b++) printf(“T”); else printf(“F”); printf(“a=%d,b=%d\n”, a, b); } 程序运行后的输出结果是 A) Ta=10,b=11 B)Fa=10,b=12 C) Ta=11,b=12 D)Fa=11,b=11 答案:C - 有以下程序
#include <stdio.h> main( ) { int i; char c; scanf("%c", &c); for (i=0; i<5; i++) { if (i > c) continue; printf("%d,", i); } } 执行时输入:0<回车>后,则输出结果是 A)0,1,2,3,4, B)0,0,0,0,0, C)5, D)0,1, 答案:A - 有以下程序
#include <stdio.h> main( ) { char ch = ‘1’; while (ch < ‘9’) { printf("%d", ch - ‘0’); ch++; } } 程序运行后的输出结果是 A)1 B)01234567 C)0 D) 12345678 答案:D - 有以下程序
#include <stdio.h> main( ) { if (’\0’ = = 0) putchar(‘1’); if (“0” = = 0) putchar(‘2’); if (‘A’ = = “A”) putchar(‘3’); } 程序运行后的输出结果是 A)3 B)123 C)23 D1 答案:D - 有以下程序
#include <stdio.h> main( ) { char ch = ‘D’; while (ch > ‘A’) { ch --; putchar(ch); if (ch == ‘A’) break; putchar(ch+1); } } 程序运行后的输出结果是 A)CDBCA B)BCA C)CCBB D)CB 答案:A - 以下与表达式(!x= =0) 的逻辑值不等价的选项是
A)x==1 B)x C)x!=0 D)x>0 || x<0 答案:A - 以下叙述正确的是
A)表达式 9+‘0’的值是字符 9 的 ASCII 码 B)表达式’A’+32 的值是字母 A 的 ASCII 码 C)表达式’a’-32 的值是字母 a 的 ASCII 码 D)表达式 9-'0’的值是数值 9 答案:A - 变量 math 和 engl 中存放了两门课的成绩。若两门课成绩均
在 60 分以上(含 60),则显示“pass”;有一门低于 60 分则显 示“fail”,以下不能实现上述功能的程序段是 A)if(math<60) if(engl<60) printf(“fail\n”); else printf(“pass\n”); B)if(math<60) printf(“fail\n”); else if(engl>=60) printf(“pass\n”); else printf(“fail\n”); C)if ((math<60) ||(engl<60)) printf(“fail\n”); else printf(“pass\n”); D)if ((math>=60) && (engl>=60)) printf(“pass\n”); else printf(“fail\n”); 答案:A - 以下程序拟实现计算 s=1 + 22 + 33 + … + nn +…,直
到 s>1000 为止。 #include <stdio.h> main( ) { int s,n; s=1; n=1; do { n=n+1; s=s+nn; } while(s>1000); printf(“s=%d\n”,s); } 程序运行后,不能得到正确结果,以下修改方案正确的是 A) 把 s=1; 改为 s=0; B) 把 while(s>1000); 改为 while(s<=1000); C)把 n=1; 改为 n=0; D)把 n=n+1; 改为 n=n*n; 答案:B - 有以下程序
#include <stdio.h> main( ) { int m,n; scanf("%d%d", &m,&n); while(m!=n) { while(m>n) { m=m-n; } while(n>m) { n=n-m; } } printf("%d\n",m); } 该程序的功能是 A)计算 m 和 n 的最大公约数 B)计算 m 和 n 的最小公倍数 C)计算 m 和 n 的差值 D)找出 m 和 n 中的较大值 答案:A - 以下程序拟实现计算 sum=1+1/2+1/3+ … +1/50 。
#include <stdio.h> main( ) { int i; double sum; sum=1.0; i=1; do { i++; sum += 1/i; } while( i<50 ); printf(“sum=%lf\n”,sum); } 程序运行后,不能得到正确结果,出现问题的语句是 A) i++; B)while(i<50); C)sum = 1.0; D) sum += 1/i; 答案:D - 若有以下程序
#include <stdio.h> main() { char a=‘5’, b; a++; printf("%d,%d\n", a-‘5’+255, b=a- ‘5’); } 执行后的输出结果是 A)256,1 B)1,256 C)255,1 D)256,0 答案:A - 有以下程序
#include <stdio.h> main( ) { int a=1,b=2,c=3,d=4, r=0; if (a!=1) r=1; if (b= =2) r=2; else if (c!=3) r=3; else if (d= =4) r=4; printf("%d\n", r); } 执行后的输出结果是 A)0 B)4 C)1 D)2 答案:D - 有以下程序段
int s, n; s=1; for( n=10; n>0; n-- ) s+=n; 该程序段拟实现整数 1~10 的累加求和,但程序中有错误。以下 4 种修改方案中仍然错误的一个是 A)将 for 循环改为 for(n=2;n<10;n++) B)将 for 循环改为 for(n=10;n>1;n–) C)将 for 循环改为 for(n=10;n>=2;n–) D)将 s=1; 改为 s=0; 答案:A - 以下关于循环语句的叙述中正确的是
A)do-while 语句的循环体至少执行一次 B)while 语句的循环体至少执行一次 C)for 语句的循环体至少执行一次 D)上述 A、B、C 说法均正确 答案:A - 有以下程序
#include <stdio.h> main( ) { int a=7, b=0; do { b += a; a -=1; } while ( a-- ) ; printf( “%d,%d\n”, b, a ); } 执行后的输出结果是 A) 16,0 B)28,1 C) 16,-1 D)28,0 答案:C - 以下选项中不属于 C 语言字符常量的是
A) ‘a’ B)’\n’ C) ‘\xah’ D)’\007’ 答案:C
|