c语言选择判断题_第1页
c语言选择判断题_第2页
c语言选择判断题_第3页
c语言选择判断题_第4页
c语言选择判断题_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

判断题: 1、 在 C语言中,枚举元素表中的元素有先后次序,可以进行比较。 2、 当需要接受用户从键盘输入的含有空格的字符串时,应使用 gets()函数。 3、 在 C语言中,枚举元素表中的元素有先后次序,可以进行比较。 4、 使用联合体 union的目的是,将一组具有相同数据类型的数据作为一个整体,以便于其中的成员共享同一存储空间。 5、 系统中标准输入文件是指硬盘。 6、 已知函数调用形式: fread(buffer,size,count,fp);其中 buffer代表的是一个指针,指向要读入数据的存放地址。 7、 fgetc函 数的作用是从指定文件读入一个字符,该文件的打开方式必须是追加。 8、 枚举元素的值可以是整数或字符串。 9、 可以在定义枚举类型时对枚举元素进行初始化。 10、 若要 为读 /写建立一个新的文本文件 ,在 fopen函数中应使用的文件方式为 w+。 11、 标准输入输出函数中,将一个字符写到磁盘文件上去,应调用 fputc函数。 12、 在 c语言中,库函数 fprintf是按指定的格式将数据写入文件,如果执行成功,函数返回的是结束符。 13、 操作系统是以文件为单位对数据进行管理的。 14、 C指字符常量 C。 15、 字符串 china在内存中占据的存储空间是 5个字节。 16、 char *name5定义了一个一维指针数组,它有 5个元素,每个元素都是指向字符数据的指针型数据。 17、 调用 strlen(abc0ef0g)的返回值为 8。 18、 if(a=b)语句可用于判断两个字符串 a和 b是否相等。 19、 两个字符串所包含的字符个数相同时才能比较字符串大小。 20、 字符个数多的字符串比字符个数少的字符串大。 21、 字符数组的字符串可以整体输入输出。 22、 C语言本身没有输入输出语句。 23、 在 C程序中,注释说明只能位于 一条语句的后面。 24、 在 C语言中(以 16位 PC机为例), 5种基本数据类型的存储空间长度的排列顺序为: char = int long int = float (b=5) 是合法的关系表达式。 57、 关系表达式 a=bc 等价于 a=(bc) ,同时也等价于 a=bc。 58、 字符 0是字符串的结束标记,其 ASCII代码为 0。 59、 算述运算 *、 /、 +和一具有相同的优先级。 60、 printf函数的格式控制串之后的所有参数的前面都必须有 &。 61、 若有 int =10 , j=0;则执行完语句 if (j=0)+ +; else - -; 的值为 11。 62、 C语言中直到型循环结构为: do 循环体 while(表达式 ); 但这种循环是当表达式为真时反复执行循环体,表达式为假时结束循环。 63、 C语言 认为变量 number和 NuMbEr是相同的。 64、 break语句不能用于循环语句和 switch语句之外的任何其他语句中。 65、 在 printf函数的格式控制串中使用转义序列 n会把光标定位到屏幕上下一行的开始位置。 66、 语句 y=*p+; 和 y=(*p)+; 是等价的。 67、 #include iostream.h的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。 68、 for ( ; ; ) 语句 等价于 while (1) 语句 ,即不设初值、不判断条件、无终止地执行循环体。 69、 unsigned 和 void 都是 C 的保留字。 70、 若 int i=10,j=2; 则执行完 i*=j+8; 后 i 的值为 28 。 71、 在 C 语言中, A 和 A 等价。 72、 表达式 4/7 和 4.0/7 的值相等。 73、 关系表达式 a=b c 等价于 a= =b c. 74、 逻辑表达式 C&d 的值为 1. 75、 若有说明 int c;则 while(c=getchar();是正确的 C语句。 76、 C语言程序的三种基本结构是顺序结构、选择结构和循环结构。 77、 在 C语言中整数只能表示为十进制数的形式。 78、 空语句是合法的 C语句。 79、 while语句的循环体不能是复合语句。 80、 关系运算符的优先顺序为:赋值运算符 逻辑运算符 关系运算符 y&chB&!y)的值为 假 。 82、 if(x!=y) scanf(%d,&x) else scanf(%d,&y);是正确的 if语句。 83、 若有条件表达式( x) ?a+:b+;则表达式中( x)等价于 (x!=0)。 84、 设有程 序段 int k=10; while (k=0) k=k-1; 则语句 k=k-1执行 10次。 85、 C语言中 while和 do-while循环的主要区别是: do-while语句至少无条件执行一次。 86、 do-while循环由 do开始,用 while结束,在 while(表达式)后面不能写分号。 87、 在 do-while循环体中,一定要有能使 while后面表达式的值变为假的操作。 88、 for循环只能用于循环次数已经确定的情况。 89、 for循环是先执行循环体语句,后判断表达式。 90、 在 for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来变成一条复合语句。 91、 执行语句 for(i=1;i+2)/(b1)的值是 _。 A) 0 B) 2 C) 4 D) 8 2、 以读写方式打开一个已有的文件 file1,下面有关 fopen函数正 确的调用方式为 _。 A)FILE *fp; fp=fopen(file1;f); B)FILE *fp; fp=fopen(file1,r+); C)FILE *fp; fp=fopen(file1,rb); D)FILE *fp; fp=fopen(file1,rb+); 3、 在 C程序中 ,可把整型数以二进制形式存放到文件中的函数是 _。 A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数 4、 以下程序输出的结果是 _ #include #include main() char w10=ABCD,EFGH,IJKL,MNOP,k; for (k=1;k3;k+) printf(%sn,&wkk); A)ABCD B)ABCD C)EFG D)FGH FGHEFG JKKL KL IJ O M 5、 下列程序执行后的输出结果是 _。 #define MA(x) x*(x+1) main() int a=2,b=3; printf(%d n,MA(1+a+b); A) 6 B) 8 C) 24 D) 42 6、 函数调用语句 fseek(fp,10,1)的含义是 _。 A)将文件指针移到距离文件头 10 个字节处 B)将文件指针移到距离文件 尾 10 个字节处 C)将文件指针从当前位置后移 10 个字节 D)将文件指针从当前位置前移 10 个字节 7、 有如下程序 #define N 3 #define M N+1 #define NUM 2*M+1 main() int i; for(i=1;i(y)?(x):(y) main() int a=4,b=2,c=3,d=4,t; t=MAX(a+b,c+d)*10; printf(%dn,t); A) 6 B) 7 C) 60 D) 70 12、 当顺利执行了文件关闭操作时, fclose函数的返回值是 _。 A)0 B)Ture C)-1 D)1 13、 下列叙述中正确的是 _。 A) C语言编译时不检查语法。 B) C语言的子程序有过程和函数两种。 C) C语言的函数可以嵌套定义。 D) C语言所有函数都是外部函数。 14、 下列语句中,不能将文件型指针 fp指向的文件内部指针置于文件头的语句是 _。 (注:假定能正确打开文件 ) A)fp=fopen(abc.dat,w) B)rewind(fp) C)feof(fp) D)fseek(fp,0L,0) 15、 运行程序: #define S(X) 2*X+1 main() int a=6,k=2,m=1; a+=S(k+m); printf(%dn,a); 则输出结果是 _。 A) 13 B) 12 C) 7 D) 6 16、 源程序 TEST.C经编译产生的目标文件和连接后产生的可执行文件是 _。 A)TEST.bak和 TEST.obj B)TEST.obj和 TEST.exe C)TEST.ext和 TEST.c D)TEST.bak和 TEST.exe 17、 下面说明中,正确的是 _。 A) typedef v1 int; B) typedef v2=int; C) typedef int v3; D) typedef v4: int; 18、 feof函数用来判断文件是否结束,如果文件没有结束,则返回值是 _。 A)-1 B)0 C)1 D)EOF 19、 以下程序的输出结果 是 #define M(x,y,z) (x)*y+z main() int a,b,c; a=b=1;c=3; printf(%dn, M(a+b,b+c,c+a); A) 9 B) 12 C) 8 D) 程序不能运行 20、 若定义 unsigned int a=3,b=10; printf(%dn,a2 b=1); 则运行结果为 _。 A)13 B)12 C)8 D)14 21、 整型变量 x和 y的值相等且为非 0值,则下面表 达式中结果为零的是 _。 A) x|y B) x|y C) x&y D) xy 22、 fread和 fwrite函数常用来要求一次输入 /输出 _数据。 A)一个整数 B)一个实数 C)一个字节 D)一组 23、 下面的程序执行后,文件 test.t中的内容是 #include void fun(char *fname ,char *st) FILE *myf; int i; myf=fopen(fname,w ); for(i=0;iy|xz); printf(%dn,t); A) 1 B) 0 C) 5 D) 3 28、 程序中头文件 typel.h 的内容是 : #define N 5 #define M1 N*3 程序如下: #define type1.h #define M2 N*2 main() int i; i=M1+M2; printf(%dn,i); 程序编译后运行输出结果是 _。 A) 10 B) 20 C) 25 D) 15 29、 有以下程序 #include main() FILE *fp; int i=10,j=30,k,n; fp=fopen(d1.dat,w); fprintf(fp,%dn,i); fprintf(fp,%dn,j); fclose(fp); fp=fopen(d1.dat, r); fp=fscanf(fp,%d%d,&k,&n); printf(%d %dn,k,n); fclose(fp); 程序运行后的输出结果是 _。 A) 10 30 B) 20 30 C) 30 50 D) 30 20 31、 下列程序执行后的输出结果是 _。 main() int x=d; printf(%cn,A+(x-a+1); A) G B) H C) E D) J 32、 下面能正 确进行字符串赋值操作的语句是 _。 A)char s5=ABCDE B)char s5=A,B,C,D,E; C)char *s;s=ABCDEF; D)char *s;scanf(%s,s); 33、 下列程序执行后的输出结果是 _。 main() char arr25; strcpy(arr,love); strcpy(arr1,you); arr04=$; printf(%sn,arr); A) love B) love$you C) you D) $you 34、 以下程序运行后,输出结果是 _。 main() static char a=ABCDEFGH, b=abCDefGh; char *p1,*p2; int k; p1=a;p2=b; for(k=0;k=7;k+) if(*(p1+k)=*(p2+k) printf(%c,*(p1+k); prinft(n); A)ABCDEFG B)CDG C)abcdefgh D)abcCDefGh 35、 设有说明语句: char a=72;则变量 a_。 A) 包含 1个字符 B) 包含 2个字符 C) 包含 3个字符 D) 说明不合法 36、 有如下程序段 int a=14,b=15,x; char c=A; x=(a&b)&(cB);执行该程序段后, x的值为 _。 A) ture B) false C) 0 D) 1 37、 若变量 c为 char类型,能正确判断出 c为大写字母的表达式是 _。 A) A=c=A)|(c=Z) C) (A=c) D) (c=A)&(c=Z) 38、 执行下面程序 : #include #include main() char ss10=1,2,3,4,5; gets(ss); strcat(ss,6789); printf(%sn,ss); 若输入 ABC ,则输出结果是 _。 A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 39、 运行程序: main() int x=1.5; char z=a; printf(%dn,(x&1)&(zz); 则输出结果是 _。 A) 0 B) 1 C) 1.5 D) 结果不确定 40、 运行程序: main() char x=11 223344; x4=0; printf(%s n,x); 则输出结果是 _。 A) 11 B) 0 C) 11 203344 D) 11 023344 41、 以下程序的输出结果是 _。 main() char c=z; printf(%c,c-22); A) d B) e C) c D) f 42、 以下选项中,非法的字符常量是 _。 A) B) 15 C) n D) xaa 43、 以下定义语句中,错误的是 _。 A) int a=1,2; B) char *a3; C) char s10=test; D) int n=5,an; 44、 以下程序的输出结果是 _。 #include #include main() char st20=hello0t; printf(%d %d n,strlen(st),sizeof(st); A) 8 8 B) 5 20 C) 11 20 D) 20 20 45、 以下语句中,不正确的是 _。 A) char s110;s1=Ctest ; B) char s2=C, t, e, s, t; C) char s35=Ctest; D) char s410=Ctestn0 46、 若变量 a是 int类型,执行语句: a=A+1.6;后,正确的叙述是 _。 A) a的值是字符 C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符 A的 ASCII值加上 1 47、 运行下面程序: char cch(char ch) if(ch=A&ch=Z) ch=ch-A+a; return ch; main() char s=ABC+cde=XxYy1,*p=s; while(*p) *p=cch(*p); p+; printf(%sn,s); 则输出结果是 _。 A) ABC+CDE=XXYY1 B) abc+cde=xxyy1 C) abcCDEXxYy D) abccdexxyy 48、 下面程序段的输出结果是 _。 char s=101111abc0; printf(%sn,s); A) AIabc0 B) 101111abc0 C) 101111abc D) AIabc 49、 运行下面程序: main() char c6=AAAA,BBB,CCC,DDD; printf(%sn,c1); 则输出结果是 _。 A) AAAA B) BBB C) BBBCCC D) CCCDDD 50、 运行下面程序: main() char x=034; printf(%on,x1); 则输出结果是 _。 A) 34 B) 70 C) 340 D) 034 51、 下面语句不能正确进行字符串赋初值的是 _。 A) char str5=good!; B) char str=good!; C) char *str=good!; D) char str5=g,o,o,d,!; 52、 运行下面程序: #include #include main() char b8=abcde,c8,*pb=b+3; while (-pb=b) strcpy(c,pb); printf(%dn,strlen(c); 则输出结果是 _。 A) 8 B) 5 C) 6 D) 7 53、 运行下面程序: main() char *p=abcdefgh,*r; int *q; q=(int*)p; q+; r=(char*)q; printf(%sn,r); 则输出结果是 _。 A) abcdefgh B) bcdefgh C) cdefgh D) efgh 54、 运行下面程序: void fun(char *c,int d) *c=*c+1;d=d+1; printf(%c %cn,*c,d); main() char a=B,b=c; fun(&b,a); printf(%c %cn,a,b); 则输出结果是 _。 A) d C B) d C C) d C D) d C B d C d B c d C 55、 运行下面程序 : main() char c =a,b,c,d, e, f, g,h,0; int i,j; i=sizeof(c); j=strlen(c); printf(%d %dn,i,j); 则输出结果是 _。 A) 9 9 B) 8 9 C) 1 8 D) 9 8 56、 运行下面程序 : #include main() char *p=abcdeOfghjik0; printf(%dn,strlen(p); 则输出结果是 _。 A) 12 B) 15 C) 6 D) 5 57、 以下描述中不属于 C语言的类型的是 _。 A) signed short int B) unsigned long int C) unsigned int D) long float 58、 若有说明语句: int a,b,c,*d=&c;则能正确从键盘读入三个整数并分别赋给变量 a、 b、 c的语句是 _。 A) scanf(%d%d%d,&a,&b,d); B) scanf(%d%d%d,&a,&b,&d); C) scanf(%d%d%d,a,b,d); D) scanf(%d%d%d,a,b,*d); 59、 在下面程序段中, while语句的循环次数是 _。 main() int k=0; while(k10) if (k1) continue; if(k=5) break; k+; . A) 0 B) 10 C) 6 D) 死循环,不能确定次数 60、 下面程序的输出结果是 _。 main() int x=177; printf(%on,x); A) 177 B) 261 C) -61 D) 61 61、 下面程序的输出结果是 _。 main() int x=10; x+=(x=8); printf(%dn,x); A) 10 B) 8 C) 18 D) 16 62、 下面程序的输出结果是 _。 main() int s,k; for(s=1,k=2;k5;k+) s+=k; printf(%dn,s); A) 1 B) 9 C) 10 D) 15 63、 设有定义: long a=-123456L;,则以下能够正确输出变量 x值的语句是 _。 A) printf(a=%dn,a); B) printf(a=%ldn,a); C) printf(a=%8dLn,a); D) printf(a=%LDn,a); 64、 运行下面程序: main() int k=3,i=2,m; m=(k-=i*=k); printf(%d %d %dn,m,k,i); 则输出结果是 _。 A) -3 -3 6 B) -1 -1 6 C) 3 3 6 D) 1 1 2 65、 以下选项中,与 k=n+完全等价的表达式是 _。 A) k=n,n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+1 66、 以下程序的功能是:按顺序读入 10名学生 4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() int n,k; float score,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(%f,&score); sum+=score; ave=sum/4.0; printf(NO%d:%fn,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句 出现在程序中的位置不正确。这条语句是 _。 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf(NO%d:%fn,n,ave); 67、 有以下程序段 int n=0,p; do scanf(%d,&p);n+; while(p!=123&n30) break; printf(*n); while(1); A) a=13 y=13 B) a=13 y=13 C) a=13 y=13 D) a=13 y=13 * * * * a=16 y=29 a=13 y=29 a=13 y=19 * * * a=19 y=48 a=13 y=44 71、 有如下程序 main() int i,sum=0; for(i=0;i=3;sum+) sum+=i; printf(%dn,sum); 该程序的执行结果是 _。 A) 6 B) 3 C) 死循环 D) 0 72、 要使下面程序段输出 10个整数,则在下划线处填入正确的数是 _。 for(i=0;i=_ ;) printf(%dn,i+=2); A) 9 B) 10 C) 18 D) 20 73、 若 a为 int类型,且其值为 5,则执行表达式 a+=a-=a*a后, a的值是 _。 A) -5 B) -40 C) -15 D) 不确定 74、 设 x、 y、 t均为 int型变量,则执行语句: x=y=2;t=+x|+y;后, y的值为 _。 A) 不确定 B) 2 C) 3 D) 1 75、 若变量已正确说明为 float类型,要通过语句 scanf(%f %f %f,&a,&b,&c);使 a=10.0, b=22.0, c=33.0,则下面不正确的输入形式是 _。 A) 10 22 33 B) 10.0,22.0,33.0 C) 10.0 22.0 33.0 D) 10 22 33 76、 执行下面程序: main() int n; scanf(%d,&n); if(n+5) printf(%dn,n); else printf(%dn,n-); 若从键盘上输入 4,则输出结果是 _。 A) 6 B) 4 C) 5 D) 3 77、 执行下面程序 : min() int i,sum; for(i=1;i6;i+) sum+=i; printf(%dn,sum); 则输出结果是 _。 A)15 B)14 C)不确定 D) 0 78、 运行程序: main() int a=1,b=2; a+=b;b=a-b;a-=b; printf(%d,%dn,a,b); 则输出结果是 _。 A) 2,1 B) 3,1 C) 3,2 D) 1,1 79、 设 x、 y均为整型变量,且 x=5, y=4,则下面语句的输出结果是 _。 printf(%d,%dn,x-,-y); A) 5,4 B) 4,4 C) 4,3 D) 5,3 80、 下面程序的输出结果是 _。 main() int a=3; printf(%dn,a+(a-=a*a); A) -6 B) 12 C) 0 D) -12 81、 t为 int类型,在进入下面的循环之前, t的值为 0: while( t=l ) . 则以下叙述中正确的是 _。 A) 循环控制表达式的值为 0 B) 循环控制表达式的值为 1 C) 循环控制表达式不合法 D) 以上说法都不对 82、 以下程序的输出结果是 _。 main() int num= 0; while(num5); printf(%dn,j); 输出结果是 _。 A) 45 B) 40 C) 34 D) 55 84、 运行下面程序 : main() int n1,n2; scanf(%d,&n2); while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); 若从键盘上输入 298 则输出结果为 _。 A) 2 B) 29 C) 8 D) 0 85、 若有定义: int a=8,b=5,c; 则执行语句 c=a/b+0.4;后, c的值为 _。 A) 1.4 B) 1 C) 2.0 D) 2 86、 执行程序段: int a=1234; printf(%2dn,a); 则输出结果是 _。 A) 12 B) 34 C) 1234 D) 提示出错、无结果 87、 运行下面程序: #include main() int k=0,a=1; while(k10) for(;) if(k%10)=0) break; else k-; k+=11;a+=k; printf(%d %dn,k,a); 则输出结果是 _。 A) 21 32 B) 21 33 C) 11 12 D) 10 11 88、 运行下面程序: main() int x33=0,1,2,0,2,1,1,2,0,i,j,t=1; for(i=0;i3;i+) for(j=0;j0); D) if(b=1) k=2;n=3; 94、 有如下程序 main() int n=9; while(n6) n-; printf(%2d,n); 该程序段的输出结果是 _。 A) 9 8 7 B) 8 7 6 C) 8 7 6 5 D) 9 8 7 6 95、 若 k为整型变量,则下面 while循环执行的次数为 _。 k=10; while(k=0) k=k-1; A)0次 B)1次 C)10次 D)无限次 96、 有如下程序 fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); main() printf(%dn,fib(3); 该程序的输出结果是 _。 A) 2 B) 4 C) 6 D) 8 97、 数组定义 char a10=a,b,c;包括了 _个元素。 A)3 B)9 C)4 D)10 98、 有以下程序段 : int k=0; while(k) k+; 则 while 循环执行的次数是 _。 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行 1次 99、 函数 strlen(12340xy)的值为 _。 A)7 B)8 C)4 D)9 100、 执行下面程序 : main() int x=4; do printf(%dn,x-=2); while (!(-x); 则输出结果是 _。 A) 2 B) 4 2 C) 2 1 D) 死循环 101、 以下存储类型只有在使用时才为该类型变量分配内存的是 _。 A)auto和 static B)auto和 register C)register和 static D)static和 extern 101、 设有以下函数: fun(int x) int y=0; static int z=2; y+; z+; return(x+y+z); 若在下面主程序中调用该函数,则输出结果是 _。 main() int x=3,k; for(k=1;k=3;k+) printf(%dn,fun(x); A) 7 8 9 B) 7 9 11 C) 7 10 13 D) 7 7 7 103、 有以下定义 #include char a10,*b=a; 不能给 a数组输入字符串的语句是 _。 A)gets(a) B)gets(a0); C)gets(&a0); D)gets(b) 104、 运行下面程序: int ff(int n) static int f=1; f=f*n; return f; main() int k; for(k=1;k4;k+) printf(%dn,ff(k); 则输出结果是 _。 A) 1 B) 1 C) 1 D) 1 2 2 2 2 6 6 3 3 24 4 105、 若有以下 定义 #define SQR(x) (x)*(x) #include main() float b=3.0; printf(sqr=%.2fn,sqr(b)+1); 则运行结果为 _。 A)sqr=3.0 B)sqr=9.0 C)sqr=10 D)sqr=10.00 106、 下列运算符中优先级最高的是 _。 A) B) + C) & D) ! = 107、 printf函数中用到格式符 %5s,其 中数字 5表示输出的字符串占用 5列。如果字符串长度大于 5,则输出按方式 _。 A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 108、 若 x ,y均定义为 int型 ,z定义为 double型 ,以下不合法的 scanf函数调用语句是 _。 A)scanf(%d%lx,%le,&x,&y,&z); B)scanf(%2d*%d%lf,&x,&y,&z); C)scanf(%x%*d%o,&x,&y);D)scanf(%x%o%6.2lf,&x,&y,&z); 109、 已有如下定义和输入语句 ,若要求 a1,a2,c1,c2的值分别为 10,20,A和 B,当从第一列开始输入数据时 ,正确的数据输入方式是_。 (表示回车 ) int a1,a2;char c1,c2; scanf(%d%c%d%c,&a1,&c1,&a2,&c2); A) 10A 20 B B)10 A 20 B C) 10A20B D)10A20 B 110、 已有定义 int x;float y; 且执行 scanf(%3d%f,&x,&y);语句时,从第一列开始输入数据库 12345 678,y的值为 _。 A)无确的定值 B) 45.000000 C)678.000000 D)123.000000 111、 判断 char型变量 ch 是否为大写字母的正确表达式是 _。 A)A=CH=A)& (CH=A)& (CH=Z) D) (A=ch) 112、 已有程序段和输入数据的形式 ,程序中输入语句的正确形式应当为 _。 main( ) int a; float f; printf(nInput number:); input number: 4.5 2 A)scanf(%d,%f ,&a,&f); B)scanf(%f ,%d,&f,&a); C)scanf(%d%f ,&a,&f); D)scanf(%f%d,&f,&a); 113、 根据定义和数据的输入方式,输入语句的正确形式为 _。 已有定义: float f1,f2; 数据的输入形式: 4.52 3.5 A)scanf(%f ,%f ,&f1,&f2); B)scanf(%f%f , &f1,&f2); C)scanf(%3.2f % 2.1f ,&f1,&f2); D)scanf(%3.2f %2.1f ,&f1,&f2); 114、 读以下程序,当输入数据的形式为: 25,13,10,正确的输出结果 _。 main( ) int x,y,z; scanf(%d%d%d,&x,&y,&z); printf(x+y+z=%dn,x+y+z); A) x+y+z=8 B) x+y+z=35 C) x+y=35 D)不确定值 115、 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 _。 main( ) char ch1,ch2,ch3; (输入语句 ) printf(%c%c%c,ch1,ch2,ch3); 输入形式: A B C 输出形式: A B A)scanf(%c,%c,%c,&ch1,&ch2,&ch3); B)scanf(%2c%2c%2c,&ch1,&ch2,&ch3); C)scanf(%c %c %c,&ch1,ch2,&ch3); D)scanf(%c%c%c,&ch1,&ch2,&ch3); 116、 设 int a=12,则执行完语句 a+=a-=a*a后, a的值是 _。 A) 552 B) 264 C) 144 D) -264 117、 设 a=5, b=6, c=7, d=8, m=2,n=2, 执行 (m=ab)&(n=cb) 后 n的值为 _。 A)1 B)2 C)3 D)4 118、 逻辑运算符两侧运算对象的数据类型 _。 A)只能是 0或 1 B)只能是 0或非 0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 119、 正确表示 当 x的取值在 1, 10和 200, 210范围内为真,否则为假 的表达式是 _。 A)(X=1)&(X=200)&(X=1)| (X=200) | (X=1)&(X=10) | (X=200)&(X=1) | (X=200) | (X=210) 120、 设 x,y和 z是 int 型变量,且 x=3,y=4,z=5,则下面表达式中值为 0的是 _。 A)x &y B)x=y C)x | y+z&y-z D)!(xy)&!z| 1) 121、 已知 x=43,ch=A,y=0;则表达式 x=y& ch5) printf(%dnm); else printf(%dn,m - -); A)4 B)5 C)6 D)7 124、 执行以下语句后 b的值为 _。 int a,b,c; a=b=c=1; +a|+b&+c; A)1 B)2 C) 错误 D)0 125、 不合法的常量是 _。 A) 2 B) (外面是单引号 ) C) D)483 126、 若有以下定义 char s=092; 则该语句 _。 A)使 s的值包含一个字符 B)定义不合法, s的值不确定 C)使 s的值包含 4个字符 D)使 s的值包含 3个字符 127、 以下程序的输出结果是 _。 main() int a=100,x=10,y=20,ok1=5,ok2=0; if(xy) if(y!=10) if(!ok1) a=1; else if(ok2) a=10; A)1 B)0 C)-1 D) 值不确定 128、 下列正确的字符常量是 _。 A、 C B、 C、 W D 129、 下列不正确的字符串常量是 _。 A) ABC B) W C) SDF/3 D) 130、 若定义 int a=7;float x=2.5;y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值是 _。 A) 2.500000 B) 2.750000 C) 3.50000 D) 0.000000 131、 表达式 18/4*sqrt(4.0)/8值的数据类型是 _。 (sqrt()为求平方根函数 ) A) int B) float C) double D) 不正确 132、 设有说明: char w;int x;float y;double z;则表达式 w*x+z-y 值的数据类型是 _。 A) int B) float C) double D) char 133、 执行下列语句 int a=3,b;b=-(-a);后 a,b的值分别是 _。 A) 2和 -2 B) 2和 -3 C) 3 和 -2 D) 3 和 -3 134、 执行下列语句 float f=3.9;int a=4;f=(int)f+a;后 f的值是 _。 A) 7.9 B) 7.000000 C) 7.0 D) 出错 135、 执行下列语句 int f=3,g,h;g=+f;g=f+;h=+g;后 f和 h的值是 _。 A) 5和 5 B) 6和 5 C) 5和 6 D) 4和 5 136、 下列 C语句格式错的是 _。 A) int a=10; B) int a,b,z; C) a=2: b=3 ; D) z=a+b; 137、 设 int类型的数据长度为 2个字节,则 unsigned int 类型数据的取值范围是 _。 A) 均为 2个字节 B) 0至 65535 C) -32768至 32767 D) -256至 255 138、 一个 C程序的执行是从 _。 A)本程序的 main函数开始,到 main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的 main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序 main函数结束 139、 以下程序段 x=-1; do x=x*x; while (!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 140、 以下描述中正确的是 _。 A)由于 do-while循环中循环体语句只能是一条可执行语句 ,所以循环体内不能使用复合语句 B)do-while循环由 do开始 ,用 while结束 ,在 while(表达式 )后面不能写分号 C)在 do-while循环体中 ,一定要有能使 while后面表达式的值边为零 (假 )的操作 D)do-while循环中 ,根据情况可以省略 while 141、 若有如下语句 int x=3; do printf(%dn,x-=2); while (! (- -x); 则上面程序段 _。 A)输出的是 1 B)输出的势力 1和 -2 C)输出的是 3和 0 D) 是死循环 142、 下面程序的运行结果是 _。 #include main() int y=10; doy-; while(-y); printf(%dn,y-); A) -1 B) 1 C) 8 D) 0 143、 下面程序的运行结果是 _。 #include main() int a=1,b=10; do b-=a; a+; while(b-0); printf(a=%,b=%dn,a,b); A) a=3 b=11 B) a=2 b=8 C) a=1 b= -1 D) a=4 b=9 144、 下面有关 for循环的正确描述是 _。 A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句 ,后判断表达式 C) 在 for循环中 ,不能用 break语句跳出循环体 D) for循环的循环体语句中 ,可以包含多条语句 ,但必须用花括号括起来 145、 对 for(表达式 1; ; 表达式 3)可理解为 _。 A) for(表达式 1; 0;表达式 3) B) for(表达式 1: 1 ;表达式 3) C)for(表达式 1; 表达式 1; 表达式 3) D) for(表达式 1; 表达式 2; 表达式 3) 146、 若 i为整型变量 ,则以下循环执行次数是 _。 for (i=2; i=0;) printf(%d,i-); A) 无限次 B)0次 C)1次 D)2次 147、 以下 for循环的执行次数是 _。 for (x=0,y=0; (y=123)&(x4);x+); A) 是无限循环 B) 循环次数不定 C)执行 4次 D)执行 148、 执行语句 for(i=1;i+4; ); 后变量 i的值是 _。 A) 3 B) 4 C) 5 D) 不定 149、 下面程序的功能是计算 1至 50中所有能被 7整除的数之和 ,请选择填空 . #include main() int i,sum= 0; for(i=1;i0?1:x0) y=1; B) if(x) else if(x0)y=1; else y=0; else if(x=0) if(x0)y=1; if(x0)y=1; else if(x=0)y=0; else y=-1; else y=-1; 161、 以下 _合法的一组用户定义标识符。 A) If B) turbo C) 3CON D) void int _001 include k_3 162、 以下循环体的执行次数是 _。 main() int i,j; for(i=0,j=3;i=j;i+=2,j-) printf(%dn,i); A) 3 B) 2 C) 1 D) 0 163、 以下 _符合 C语言语法的赋值表达式。 A) d=8+e+f=d+a B) 8+e=f=d C) d=f=8+e+ D) d=8+e+=d+7 164、 下列程序的运行结果是 _。 #include main() int a=2,c=5; printf(a=%d,b=%dn,a,c); A) a=%2,b=%5 B) a=2,b=5 C) a=d,b=d D) a=%d,b=%d 165、 若有定义 #define a 4 int x=0;float y=1.12;char z=A;则下面错误的语句是 _。 A) a+; B) x+; C) +y; D) +z; 166、 若有定义 : float w; int a, b; 则合法的 switch语句是 _。 A) switch(w) B) switch(a); case 1.0: printf(*n); case 1 printf(*n); case 2.0: printf(*n); case 2 printf(*n); C) switch(b) D) switch(b) case 1: printf(*n); case 1: printf(*n) default: printf(n); case 2: printf(*n) case 1+2: printf(*n); default: printf(n) 167、 C语言对于嵌套 if语句规定 else总是 _匹配。 A)与最外层的 if B)与之前最近的 if C)与之前最近的不带 else的 if D)与最近的 之前的 if 168、 设有以下变量定义 ,并已赋确定的值 char w; int x; float y; double z; 则表达式 :w+x+z/y值的数据类型为 _。 A) char B) int C) float D) double 169、 若 a, b, c均为 int型变量,则执行以下语句后, a、 b值分别为 _。 a=b=c=0; a+ & +b | c+; A) 1, 0 B) 0, 1 C) 1, 1 D) 0, 0 170、 若 x为 int类型 ,则下面与逻辑表达式 !x等价的 C语言关系表达式是 _。 A) x=1 B) x!=1 C) x=0 D) x!=0 171、 设 int a=3;下列表达式值等于 0的是 _。 A) a & (a0) B) !a|a C) a%=a D) a=a 172、 若变量已正确定义并赋值,下面符合 C语言语法的表达式是 _。 A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b 173、 设 int a=5, b=2, c=3, d=4;则表达式 ab?a:cd?c:d值为 _。 A) 2 B) 3 C) 4 D) 5 174、 C语言中运算对象必须是整型的运算符是 _。 A) % B) / C) = D) 175、 设 x,y,z和 k都是 int型变量,则执行表达式: x=(y=4,z=16,k=32)后, x的值为 _。 A)4 B)16 C)32 D)52 176、 若已定义 x和 y为 float类型,则表达式 x=2,y=x+3/2 的值是 _。 A) 2.0 B) 3.0 C) 1.5 D) 3.5 177、 设有如下的变量定义 int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2;则以下符合 C语言的表达式是 _。 A)a+=a-=(b=4)*(a=3) B)x%(-3) C)a=a*3=2 D)y=float(i) 178、 若变量 a、 i已正确定义,且 i已正确赋值,则下面合法的语句是 _。 A) a=2 B) +i; C) a=a+=5; D) a=int(i); 179、 假定有以下变量定义: int k=7,x=12; 则能使值为 3的表达式是 _。 A)x%=(k%=5) B)x%=(k-4%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 180、 若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后, c3 的值是 _。 A) 0 B) 0.5 C) 1 D) 2 181、 以下叙述正确的是 _。 A)输入量可以是一个实型常量, 例如: scanf(%f,3.5); B)只有格式控制,没有输入项,也能正确输入数据到内存, 例如: scanf(a=%d,b=%df); C)当输入实型数据时,格式控制部分可以规定小数点后位数, 例如: scanf(%4.2f,&f); D)当输入数据时,必须指明变量地址, 例如: scanf(%f,&f); 182、 有程序 : main() int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2); 运行该程序的输出结果是 _。 A) 3 4 B) 4 2 C) 4 3 D) 3 3 183、 设 x和 y均为 int型变量,则语句: x+=y;y=x-y;x-=y;的功能是 _。 A)把 x和 y按从大到小排列 B)把 x和 y按从小到大排列 C)无确定结果 D)交换 x和 y中的值 184、 能正确表示逻辑关系: a5 或 a -1的 C语言表达式是 _。 A) a=5 or a=5|a=5 &a=5|a5) printf(%dn,m) esle printf(%dn,m-) A)7 B)6 C)5 D)4 188、 有如下程序 main() float x=5.0,y; if(x0.0) y=0.0; else if(x10.0) y=1.0/x; else y=1.0; printf(%fn,y); 该程序的输出结果是 _。 A) 0.000000 B) 5.000000 C) 0.200000 D) 1.000000 189、 当 a=1,b=3,c=5,d=4时,执行下面一段程序后, x的值为 _。 if(ab) if(cd)x=1; else if(ac) if(bd)x=2; else x=3; else x=6; else x=7; A)1 B)2 C)3 D)6 190、 有如下程序 main() int a=3,b=-1,c=1; if(ab) if(b0) c=0; else c+; printf(%dn,c); 该程序的输出结果是 _。 A) 0 B) 1 C) 2 D) 3 191、 在执行以下程序时,如果从键盘输入: ABCdef,则输出为 _。 #include main() char ch; while(ch=getchar()!=n) if(ch=A&ch=a&ch=0 D) abs(int(x)=0 195、 执行以下程序后,输出结果是 _。 main() int y=10; doy-;while(-y); printf(%dn,y-); A)-1 B)1 C)8 D)0 196、 以下所列的 C语言常量中,错误的是 _。 A) 0xFF B) 1.2e0.5 C) 1.0/2.0 D) 72 197、 在下列选项中,没有构成死循环的程序段是 _。 A)int i=100; for(;); i-; B)int i=100; while(1) i=i&100+1; if(i100)break; C)int k=1000; for(;k100;k-); D)int s=36; while(s); -s; 198、 下列选项中,合法的 C语言关键字是 _。 A) VAR B) cher C) integer D) default 199、 执行语句: for(i=1;i+4;);后,变量 i的值是 _。 A)3 B)4 C)5 D)不定 200、 若 a、 b、 x、 y均是整型变量,且 a,b均已赋过值,则正确的 switch语句是 _。 A) swich(a+b); case 1:y=a+b; break; case 0:x=a-b; break; B) switch(a*a+b*b) case 3: case 1:y=a+b;break; case 3:y=b-a;break; C) switch a case 10 :y=a-b; break; case 20: x=a*d; break; default:x=a+b; D) switch(a-b) default:y=a*b;break; case 3:case 4:x=a+b;break; case 10:case 11:y=a-b;break; 201、 运行以下程序后,如果从键盘输入 china,则输出结果为 _。 #include main() int v1=0,v2=0; char ch; while(ch=getchar()!=n) switch(ch) case a: case h: default:v1+; case 0:v2+; printf(%d,%dn,v1,v2); A)2, 0 B)5, 0 C)5, 5 D)2, 5 202、 运行程序: #include main() int n=c; switch(n+) default: printf(error);break; case a:case A:case b:case B:printf(good);break; case c:case C:printf(pass); case d:case D:printf(warn); 则输出结果是 _。 A) good B) pass C) warn D) passwarn 203、 若以下程序所生成的可执行文件名为 file.exe,当打入以下命令执行该程序时,程序的输出结果是 _。 FILE1 CHINA BEIJING SHANGHAI main(int argc,char *argv) while(argc-0) +argv; printf(%s,*argv); A)CHINA BEIJING SHANGHAI B)FILE1 CHINA BEIJING C)CBS D)FCB 204、 假定 x和 y为 double型,则表达式 x=2,y=x+3/2的值是 _。 A) 3.500000 B) 3 C) 2.000000 D) 3.000000 205、 下面程序的运行结果是 _。 main() char ch7=65ab21; int i,s=0; for(i=0;chi=0 & chi = 9;i+=2) s=10*s+chi-0; printf(%dn,s); A)12ba56 B)6521 C)6 D)62 206、 以下合法的赋值语句是 _。 A) x=y=100 B) d-; C) x+y; D) c=int(a+b); 207、 以下程序运行后,输出结果是 _。 #include #define PT 5.5 #define S(x) PT*x*x main() int a=1,b=2; printf(%4.1fn,S(a+b); A)49.5 B)9.5 C)22.0 D)45.0 208、 设 x、 y、 z为整型变量,若从键盘给 x、 y、 z输入数据,则正确的输入语句是 _。 A) INPUT x,y,z; B) scanf(%d%d%d,&x,&y,&z); C) scanf(%d%d%d,x,y,z); D) read(%d%d%d,&x,&y,&z); 209、 以下程序执行后, a的值是 _。 main() int a, k=4,m=6,*p1=&k,*p2=&m; a=p1=&m; printf(%dn,a); A)4 B)1 C)0 D)运行时出错, a无定值 210、 设 a、 b、 c、 d、 m、 n均为整型变量,且 a=5,b=7,c=3,d=8,m=2,n=2,则逻辑表达式 (m=ab)&(n=cd)运算后, n的值为 _。 A) 0 B) 1 C)2 D) 3 211、 以下程序运行后,输出结果是 _。 main() char ch25=693,825,*p2; int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i=0 & pij=9;j+=2) s=10*s+pij-0; printf(%dn,s); A)6385 B)22 C)33 D)693825 212、 运行下程序: main() int x; scanf(%d,&x); if(x-7) printf(%d,x); else printf(%d,x+); 若从键盘上输入 7,则输出结果是 _。 A) 0 B) 6 C) 7 D) 8 213、 请选出下面可用作 C语言用户标识符的一组。 A)void B)ab C)2ab D)a+b define abc a2b ab aaa abd ab2 aabb 214、 假定 w、 x、 y、 z、 m均为整型变量,且 w=1, x=2, y=3, z=4则执行语句: m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;后, m的值是 _。 A) 4 B) 3 C) 2 D) 1 215、 设 x为 int型变量,则 执行以下语句后, x的值为 _。 x=8; x-=x-=x; A)8 B)0 C)16 D)-8 216、 以下程序的输出结果是 _。 main() int a,b; for(a=1,b=1;a=10) break; if (b%3=1) b+=3; continue; printf(%dn,a); A) 101 B) 3 C) 4 D) 5 217、 请选出合法的 C语言赋值语句。 A)a=a+b B)a?10 C)a=int(a+b); D)a+; 218、 若有如下定义: int a=511,*b=&a; 则 printf(%dn,*b);的输出结果为 _。 A) 无确定值 B) a的地址 C) 512 D) 511 219、 执行以下程序片段的结果是 _。 int x=321; do printf(%2d,x-); while(!x); A)打印出 321 B)打印出 32 C)打印出 21 D)陷于死循环 220、 运行下面程序: main() int a=2,i; for(i=0;i60) printf(%d,x); if(x40) printf(%d,x); if(x30) printf(%d,x); 若从键盘输入 58 则输出结果是 _。 A) 585858 B) 5858 C) 58 D) 58 225、 合法的数组定义是 _。 A)char a=H,e,l ,l,o; B)char a5=H,e,l,l,o; C)char a=H,e,l ,l,o; D)char a5=Hello; 226、 已有定义 : int x=0,y=2,z=3; 则表达式 !(x+y)+z-1&y+z/2的值是 _。 A) 6 B) 0 C) 2 D) 1 227、 设 a为 int型变量,则不能正确表示数学关系 |a|10的表达式是 _。 A) a10 | a10 & a=-10 & a=10) D) !(a=-10) 228、 运行下面程序: main() int a=16,b=21,m=0; switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default:m+; case 0:m+;break; printf(%dn,m); 则输出结果是 _。 A) 1 B) 2 C) 3 D) 4 229、 以下程序的输出结果是 _。 #include main() int a=2,b=5; printf(a=%d,b=%dn,a,b); A)a=%2,b=%5 B)a=2,b=5 C)a=%d,b=%d D)a=%d,b=%d 230、 以下程序的输出结果是 _。 #include main() int i; for(i=1;i3)&(x4);x+,y+) i+; 则执行上述语句后, i的值为 _。 A)0 B)1 C)2 D)陷于死循环 232、 有以 下程序,请问执行后的输出结果是 _。 #include main() char s10=H,e,l,l,o; printf(%d,strlen(s); A)8 B)7 C)6 D)5 233、 有以下程序,其 for语句中循环体执行的次数是 _。 #include #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i,n=0; for(i=1;i=NUM;i+) n+; printf(%d,n); printf(n); A)5 B)6 C)8 D)9 234、 若有定义语句 int a10=0,1,2,3,4,5,6,7,8,9,*p=a; 则不是对 a数组元素的正确引用是 _。 A)ap-a B)*(&ai) C)*p D)*(*(a+i) 235、 若有以下程序段,执行后的输出结果是 _。 char *s1=BEIJING,*s2=SHANGHAI; printf(%d,strlen(strcpy(s1,s2); A)8 B)7 C)15 D)9 236、 下面程序的输出是 _。 main() char *s=121; int k=0,a=0,b=0; do k+; if(k%2=0) a=a+sk-0; continue; b=b+sk-0; a=a+sk-0; while(sk+1); printf(k=%da=%db=%dn,k,a,b); A) k=3 a=2 b=3 B) k=3 a=3 b=2 C) k=2 a=3 b=2 D) k=2 a=2 b=3 237、 若有以下定义: float x;int a,b; 则正确的 switch语句是 _。 A)switch(x) B)switch(x) case 1.0:printf(*n); case 1,2:printf(*n); case 2.0:printf(*n); case 3:printf(*n); C)switch(a+b) D)switch(a+b) case 1:printf(*n); case 1:printf(*n); case 1+2:printf(*n); case 2:printf(*n); 238、 在以下一组运算符中,优先级最高的运算符是 _。 A)= B)= C)% D)& 239以下程序的输出结果是 _。 #include main() int i=1,j=3; printf(%d,i+); int i=0; i+=j*2; printf(%d,%d,i,j); printf(%d,%d,i,j); A)1, 6, 3, 1, 3 B)1, 6, 3, 2, 3 C)1, 6, 3, 6, 3 D)1, 7, 3, 2, 3 240、 以下选项中合法的用户标识符是 _。 A)long B)2Test C)3Dmax D)A.dat 241、 一个 C语言源程序是由 _组成。 A)若干过程 B)若干子程序 C)若干函数 D)一个主程序和若干子程序 242、 C语言中,要求参加运算的数必须是整数或字符的运算符是 _。 A)/ B)! C)% D)= 243、 int 类型的数据取值范围是 _。 A)0至 255 B)-32768至 32767 C)-256至 255 D)0至 65535 244、 下列 属于 C语言合法的字符常量是 _。 A) 97 B) A C) t D) 0 245、 若 x为 unsigned int型变量,则执行以下语句后的 x值为 _。 x=65534; printf(%d,x); A)65534 B)2 C)无定值 D)-2 246、 以下合法的赋值语句是 _。 A)a=(5+b,d+,a+5); B)x=y=50 C)x+y; D)c=int(a+b) 247、 已知 w=0,x=1,y=2,z=3,a=4,b=5;则执行语句 (a=wx)&(b=yz);后 ,a,b的值为 _。 A)0, 0 B)4, 5 C)0, 5 D)4, 0 248、 设 x、 y、 t均为 int型变量,则执行语句: x=y=4;t=+x|+y;后, y的值为 _。 A)不定值 B)5 C)4 D)1 249、 若有以下程序段,执行后的输出结果是 _。 int a=3; printf(%dn,(a+=a-=a*a); A)-6 B)12 C)0 D)-12 250、 putchar函数可以向终端输出一个 _。 A)整型变量表在式值 B)实型变量值 C)字符串 D)字符或字符型变量值 251、 函数 fabs(x)的功能是 _。 A)对 x取整 B)对 x取绝对值 C)对 x取平方根 D)计算 x的平方 252、 若给定条件表达式 (m)?(a+):a-则其中表达式 m和 _等价。 A)m=0 B)m=1 C)m!=0 D)m!=1 253、 定义如下变量和数组: int i, x33=1,2,3,4,5,6,7,8,9; 下面语句的输出结果是 _。 for(i=0;i=0,则 b=1;否则 b=0的语句是 _。 A)if B)if-else C)switch D)嵌套的 if-else 275、 设 int x,y,z=4;x=y=+z;x=(yz)?x+2:x+;则 x的值是 _。 A)4 B)5 C)6 D)7 276、 设执行变量 x值为 3,执行下列循环语句后,变量 y的值是 _。 do y+;while(y+4) A)3 B)4 C)5 D)6 277、 语句 while(!e);中的条件 !e 等价于 _。 A)e=0 B)e!=1 C)e!=0 D) e 278、 以下一维数组 a的正确定义是 _。 A)int a(10); B)int n=10,aa; C)int n; D)#define N 10 scanf(%d,&n); int aN; int an; 279、 在执行 char str10=chinan0;strlen(str)的结果是 _。 A)5 B)6 C)7 D)8 280、 设有语句 int a=3,4,5,9,8,7;,则表达式 a1-a4的值是 _。 A)-6 B)6 C)-4 D)2 281、 设有宏定义 #define M(x) x0) B)!aa C)a%=a D)a=a 291、 设 int a=5, b=2,c=3,d=4;则表达式 ab?a:cd?c:d的值是 _。 A)2 B)3 C)4 D)5 292、 执行程序段 : int k=3,s2; s0=k;k=s1*10;后,变量 k中的值为 _。 A) 不定值 B) 33 C) 30 D) 10 293、 若已定义 : int a =0,1,2,3,4,5, *p=a,i; 其中 0i5, 则对 a数组元素引用不正确的是 _。 A) ap-a B) *(&ai) C) pi D) a6 294、 下列程序执行后的输出结果是 _。 main() int a22,*p,i; p=&a00; for(i=p;i4;i+) pi=i+1; printf(%d n,a11); A) 3 B) 4 C) 9 D) 随机数 295、 设有数组定义 : char array =China; 则数组 array所占的空间为 _。 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 296、 执行下列程序时输入 :111222333,输出结果是 _。 main() char s100; int c,i; scanf(%c,&c); scanf(%d,&i); scanf(%s,s); printf(%c,%d,%s n,c,i,s); A) 111,222,333 B) 1,222,333 C) 1,22,333 D) 1,11,222 297、 有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则表示元素 8的表达式是 _。 A) *P+8 B) *(P+7) C) *P+=8 D) P+7 298、 有如下程 序 main() int a5=1,1,1,0,i,k=2; for(i=0;ik;i+) ai=ai+1; printf(%dn,ak); 该程序的输出结果是 _。 A) 不确定的值 B) 2 C) 1 D) 0 299、 若有以下的定义: int x32; 则能正确表示 x数组元素地址的表达式是 _。 A) &x32 B) x3 C) x1 D) x0+x2 300、 有如下程序 main() int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;ji;j+) s+=aij; printf(%dn,s); 该程序的输出结果是 _。 A) 18 B) 19 C) 14 D) 21 301、 有如下程序: main() char ch25=1234,5678,*p2; int i,j; long s=0; for(i=0;i2;i+) pi=chi; for(i=0;i2;i+) for(j=0;pij!=0;j+=2) s=10*s+pij-0; printf(%dn,s); 该程序的输出结果是 _。 A) 1357 B) 1234 C) 5678 D) 1458 302、 运行程序 : main() char a10=9,8,7,6,5,4,3,2,1,0,*p=a+2; printf(%d,*-p); 则输出结果是 _。 A) 非法 B) a2的地址 C) 8 D) 7 303、 运行程序 : main() int a =1,2,3,4,5,6,7,8,9,0,*p; p=&a2; printf(%dn,*p+5); 则输出结果是 _。 A) 6 B) 5 C) 8 D) 7 304、 运行程序 : main() int i,k,a10,p3; k=0; for (i=0;i10;i+) ai=i; for (i=0;i3;i+) pi=ai*(i+1); for (i=0;i3;i+) k+=pi*2; printf(%dn,k); 则输出结果是 _。 A) 14 B) 16 C) 18 D) 20 305、 运行程序 : main() int i,x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d,xi2-i); 则输出结果是 _。 A) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9, 306、 运行程序 : main() int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i3;i+) for(j=0;ji;j+) s+=aij; printf(%dn,s); 则输出结果是 _。 A) 18 B) 14 C) 16 D) 8 307、 运行程序 : main() char w10=ABCD,EFGH,IJKL,MNOP; int k; for(k=1;k=0;k-) ak=10-k; printf(%2d%2d%2d,a1,a5,a9); A) 2 5 8 B) 9 5 1 C) 8 5 2 D) 1 5 9 310、 以下数组定义中不正确的是 _。 A) int a23; B) int b3=0,1,2,3; C) int c100100=0; D) int d3=1,2,1,2,3,1,2,3,4; 311、 以下程序的输出结果是 _。 main() int a44=1,3,5,2,4,6,3,5,7; printf(%d%d%d%dn,a03,a12,a22,a30); A) 0670 B) 5430 C) 0250 D) 输出值不定 312、 运行下面程序: main() char s=9876,*p; for (p=s;ps+2;p+) printf(%sn,p); 则输出结果是 _。 A)9876 B)9876 C)9 D)9 876 876 8 8 76 7 313、 运行下面程序: main() char s=123456; s3= 0; printf(%sn,s); 则输出结果是 _。 A) 123456 B) 123 C) 12 D) 1234 314、 运行下面程序 : void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj) t=ai;ai=aj;aj=t; main() int x10=1,2,3,4,5,6,7,8,9,0,i; sort(&x2,5); for(i=0;i10;i+) printf( %d,xi); printf(n); 则输出结果是 _。 A) 1 2 6 5 4 3 7 8 9 0 B) 1 2 7 6 5 4 3 8 9 0 C) 1 2 3 4 5 6 7 8 9 0 D) 1 6 5 4 3 2 7 8 9 0 315、 运行下面程序 : void rev(int a ,int n) int i,t; for(i=0;in/2;i+) t=ai;ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,-1; int k,s=0; rev(b,8); for(k=6;k10;k+) s+=bk; printf(%dn,s); 则输出结果是 _。 A) 14 B) 12 C) 11 D) 13 316、 运行下面程序 : main() int x44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; int k,s=0; for(k=0;k4;k+) s+=xk2; printf(%dn,s); 则输出结果是 _。 A) 26 B) 29 C) 24 D) 20 317、 下列程序的输出结果是 _。 struct abc int a,b,c; ; main() struct abc s=1,2,3; int t; t=s.a,s.c; printf(%dn,t); A) 1 B) 2 C) 3 D) 无结果 318、 以下程序运行后,输出结果是 _。 main() char *s=abcd; s+=2; printf(%1dn,s); A)cde B)字符 c的 ASCII码值 C)字符 c的地址 D)出错 319、 请选出下面正确的程序段 A) int *p; B) int *s,k=2; scanf(%d,p); s=k; . . C) int *s,k; D) int *s,k; char *p,c; char *p,e; s=&k; s=&k; p=&c; p=&e; *p=a; s=p; . *s=1; . 320、 有以下程序段,请问执行后的输出结果是 _。 char s10=abcdefg,*p; p=s;p+; printf(%s,p); A)abcdefg B)bcdefg C)cdefg D)编译不通过 321、 设已有定义 : char *st=how are you; 下列语句中正确的是 _。 A) char a11,*p; strcpy(p=a+1,&st4); B) char a11; strcpy(+a,st); C) char a11; strcpy(a,st); D) char a,*p; strcpy(p=&a1,st+2); 322、 若有定义和语句: int *pp,*p,a=100,b=200; pp=&p; p=&b;printf(%d,%dn,*p,*pp); 则输出结果是 _。 A)100, 200 B)100, 100 C)200, 100 D)200, 200 323、 变量 a所占内存字节数是 _。 union U char st4; int i; long l; ; struct A int c; union U u; a; A) 4 B) 5 C) 6 D) 8 324、 有以下程序: #include union pw int i; char ch2; a; main() a.ch0=13; a.ch1=0; printf(%d,a.i); 执行上述程序后的输出结果是 _。 A)13 B)14 C)208 D)209 325、 有如下程序段 int *p,a=10,b=2; p=&a; a=*p+b; 执行该程序段后, a的值为 _。 A) 12 B) 11 C) 10 D) 编译出错 326、 设有如下定义: struct sk int a;float b;data,*p; 若有 p=&data;,则对 data中的 a域的正确引用是 _。 A)(*p).data.a B)(*p).a C)p-data.a D)p.data.a 327、 对于基类型相同的两个指针变量之间,不能进行的运算是 _。 A) n B)p-n+ C)(*p).n+ D)+p-n 329、 有如下定义 struct person char name9; int age; struct person class10= Johu,17,Paul,19,Mary,18,Adam,16,; 根据上述定义,能输出字母 M的语句是 _。 A) prinft(%cn,class3.mane); B) pfintf(%cn,1); C) prinft(%cn,1); D) printf(%cn,0); 330、 下列程序的输出结果是。 main() int a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(%d,*-p); A)3 B)4 C)5 D)a4的地址 331、 以下对结构体类型变量的定义中,不正确的是 _。 A) typedef struct aa B) #define AA struct aa int n; AA int n; float m; float m; AA; td1; AA td1; C) struct D) struct int n; int n; float m; float m; aa; td1; struct aa td1; 332、 若有如下语句: int c45, (*p)5; p=c; 则能正确引用 c数组元素的是 _。 A)p+1 B)*(p+3) C)*(p+1)+3 D)*(p0+2) 333、 运行下面程序: main() char s=1234; char *p; for(p=s+1;pdata.a D)(*p).data.a 335、 设有以下说明 : struct stud char num6; int s4; double ave; a,*p; 则变量 a在内存所占字节数是 _。 A) 18 B) 22 C) 11 D) 5 336、 设有定义: int s=1,3,5,7,9,*p=&s0;则值为 7的表达式是 _。 A)*p+3 B)*p+4 C)*(p+3) D)*(p+4) 337、 下列程序段的输出结果是 _。 void fun(int *x,int *y) printf(%d %d ,*x,*y); *x=3; *y=4; main() int x=1,y=2; fun(&y,&x); printf(%d %d,x, y); A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2 338、 若有以下定义,则值为 4的表达式是。 int a=1,2,3,4,5,6,7,8,9,10,*p=a; A)p+=3,*(p+) B)p+=3,*+p C)p+=4,*p+ D)p+=4,+*p 339、 设有以下说明语句 : struct ex int x;float y;char z; example;则下面的叙述中不正确的是 _。 A) struct是结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型 340、 设有结构体及其数组和指针变量的定义语句 structint x;y2,p=y; 则下列表达式中不能正确表示结构体成员的是 _。 A)(*p).x B)*(p+1).x C)*(p) D)*p.x 341、 运行程序: struct st int x; int *y; *p; int d4=10,20,30,40; struct st a4=20,&d0,30,&d1,40,&d2,50,&d3; main() p=a; printf(%dn,+(p-x); 则输出结果是 _。 A) 11 B) 21 C) 31 D) 41 342、 若定义 union exint i;float f;char a10;x;则 sizeof(x)的值是 _。 A)4 B)6 C)10 D)16 343、 运行程序: main() int a=4,2,10,5,20,7,*p=a; p+; printf(%dn,*(p+2); 则输出结果是 _。 A) 10 B) 20 C) 5 D) 3 344、 设 int a=1,2,3,i,*p=a;根据定义及语法分析 _是不正确的。 A)ap-a B)*(&ai) C)pi D)*(*(a+i) 345、 若有说明: int i,j=2,*p=&i;,则能完成 i=j赋值功能的语句是 _。 A) i=*p; B) *p=*&j; C) i=&j; D) i=*p; 346、 若定义 union uexint i;float f;char c;ex;则 sizeof(ex)的值是 _。 A)4 B)5 C)6 D)7 347、 以下程序的输出结果是 _。 struct HAR int x, y; struct HAR *p; h2; main() h0.x=1;h0.y=2; h1.x=3;h1.y=4; h0.p=&h1;h1.p=h; printf(%d %d n,(h0.p)-y,(h1.p)-x); A) 2 3 B) 1 4 C) 4 1 D) 3 2 348、 设有定义 enum teammy,your=3,his,her=his+5;则枚举元素 my,your,her的值分别是 _。 A)032 B)134 C)039 D)035 349、 以下程序的输出结果是 _。 union myun struct int x, y, z; u; int k; a; main() a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf(%dn,a.u.z); A) 4 B) 5 C) 6 D) 0 350、 已知赋值语句 Wang.year=2005;判断 Wang是 _类型的变量。 A)字符或文件 B)整型和枚举 C)联合或结构 D)实型或指针 351、 以下程序的输 出结果是 _。 main() int a=6,b=2,c=3,x; x=ab?(ac?a:c):(b); printf(%dn,x); A) 6 B) 2 C) 3 D) 不确定 352、 fdmax函数功能是返回数组中的最大值。 为达到这个要求,在下划线处应填入的是 _。 fdmax(int *a,int n) int *p,*s; for(p=a,s=a;p-as B) *p*s C) apas D) p-ap-s 353、 若指针 p已正确定义,要使 p指向两个连续的整型动态存储单元,不正确的语句是 _。 A) p=2*(int*)malloc(sizeof(int); B) p=(int*)malloc(2*sizeof(int); C) p=(int*)malloc(2*2); D) p=(int*)calloc(2,sizeof(int); 354、 若有下面的说明和定义: struct test int a; char b; float c; union u char ul5;int u22; ua; myaa; 则 sizeof(struct test )的值是 _。 A) 12 B) 19 C) 14 D) 4 355、 若有定义: int a10; 则下面表达式中不能代表数组元素 a1的地址的是 _。 A) &a0+1 B) &a1 C) &a0+ D) a+1 356、 若有以下定义和语句 : int s45,(*p)5; p=s; 则对 s数组元素的正确引用形式是 _。 A) p+1 B) *(p+3) C) p02 D) *(p+1)+3 357、 若有说明: int n=2,*p=&n,*q=p; 则以下非法的赋值语句是 _。 A) p=q; B) *p=*q; C) n=*q; D) p=n; 358、 下列程序执行后的输出结果是 _。 void func(int *a,int b) b0=*a+8; main() int a,b5; a=0;b0=4; func(&a,b); printf(%dn,b0); A) 6 B) 7 C) 8 D) 9 359、 以下程序运行后,如果从键盘输入 ABCDE,则输出结果为 _。 #include #include func(char str) int num=0; while(*(str+nom!=0)nom+; return(num); main() char str10,*p=str; gets(p); printf(%dn,func(p); A)8 B)7 C)6 D)5 360、 下列程序的输出结果是 _。 int b=5; int func(int *a) b+=*a; return(b); main() int a=1,res=2; res+=func(&a); printf(%dn,res); A) 4 B) 6 C) 8 D) 10 361、 以下程序运行后,输出结果是 _。 #include ss(char *s) char *p=s; while(*p) p+; return(p-s); main() char *a=abded; int i; i=ss(a); printf(%dn,i); A)8 B)7 C)6 D)5 362、 若有以下调用语句 ,则不正确的 fun函数的首部是 _。 main() . int a20,n; . fun(n,&a10); . A) void fun(int m, int x) B) void fun(int s, int h30) C) void fun(int p, int *s) D) void fun(int n, int a) 363、 以下程序运行后输出结果是 _。 #include func(int a, int b) static int m=0,i=2; i+=m+1; m=i+a+b; return(m); main() int k=4,m=1,p; p=func(k,m);printf(%d,p); p=func(k,m);printf(%dn,p); A)8,15 B)8,16 C)8,17 D)8,8 364、 有如下函数调用语句 :func(rec1,rec2+rec3,(rec4,rec5);则该函数调用语句中,含有的实参个数是 _。 A) 3 B) 4 C) 5 D) 有语法错 365、 以下程序运行后,输出结果是 _。 int d=1; fun(int p) int d=5; d+=p+; printf(%d,d); main() int a=3; fun(a); d+=a+; printf(%d,d); A)84 B)99 C)95 D)44 366、 有如下程序 int func(int a,int b) return(a+b); main() int x=2,y=5,z=8,r; r=func(func(x+1,y),z); printf(%dn,r); 该程序的输出的结果是 _。 A) 12 B) 16 C) 14 D) 15 367、 以下函数返回 a所指数组中最小的值所在的下标。 fun(int *a,int n) int i,j=0;p; p=j; for(i=0;in;i+) if(ainext=NULL;p=p-next;p-next=q; B)p=p-next;q-next=p-next;p-next=q; C)p=p-next;q-next=p;p-next=q; D)p=(*p)next;(*q)next=(*p)next;(*p)next=q; 369、 若有以下的定义: int a=1,2,3,4,5,6,7,8,9,10,*p=a; 则值为 3的表达式是 _。 A)p+=2,*(p+) B)p+=2,*+p C)p+=3,*p+ D)p+=2,+*p 370、 在 C语言中,函数的隐含存储类别是 _。 A) auto B) static C) extern D) 无存储类别 371、 以下程序的输出结果是 _。 #include sub1(char a,char b)char c; c=a;a=b;b=c; sub2(char *a,char b)char c;c=*a;*a=b;b=c; sub3(char *a,char *b)char c;c=*a;*a=*b;*b=c; main() char a,b; a=A;b=B;sub3(&a,&b);putchar(a);putchar(b); a=A;b=B;sub2(&a,b);putchar(a);putchar(b); a=A;b=B;sub1(a,b);putchar(a);putchar(b); A)BABBAB B)ABBBBA C)BABABA D)BAABBA 372、 有以下函数 char fun(char *p) return p; 则该函数的返回值是 _。 A) 无确切的值 B) 形参 p中存放的地址值 C) 一个临时存储单元的地址 D) 形参 p自身的地址值 373、 以下程序的输出结果是 _。 #include main() int k=4,m=1,p; p=func(k,m); printf(%d,p); p=func(k,m); printf(%d,p); func(a,b) int a,b; static int m=0,i=2; i+=m+1; m=i+a+b ; return(m); A)8, 17 B)8, 16 C)8, 20 D)8, 8 374、 下面程序输出结果是 _。 void fun() static int a=0; a+=2; printf(%2d,a); main() int n; for(n=1;n4;n+) fun(); printf(n); A) 2 2 2 B) 2 4 6 C) 2 2 2 2 D) 2 4 6 8 375、 下面程序的运行结果是 _。 #include fun(int *s,int p23) *s=p01; main() int x23=2,4,6,8,10,12,*p; p=(int *)malloc(sizeof(int); fun(&p,x); printf(%d,*p); A)10 B)4 C)6 D)8 376、 下面所列的函数定义中,正确的是 _。 A) void play(var a:integer,var b:integer) B) void play(int a,b) C) void play(int a,int b) D) Sub play(a as integer,b as integer) 377、 以下是对函数的描述,不正确的是 _。 A)调用函数时,实参可以是常量、表达式 B)调用函数时,将为形参分配内存单元 C)调用函数时,实 参与形参个数必须相同 D)调用函数时,形参必须是整型 378、 以下程序的输出结果是 _。 fun(int x, int y, int z) z=x*x+y*y; main() int a=3; fun(1,2,a); printf(%dn,a); A) 0 B) 5 C) 3 D) 无定值 379、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 _。 A)地址传递 B)单向值传递 C)传递方式由用户指定 D)由实参传给形参,再由形参传给实参 380、 运行程序 : void fun(int *a,int *b) int *k; k=a;a=b;b=k; main() int a=2,b=5,*x,*y; x=&a,y=&b; fun(x,y); printf(%d %dn,a,b); 则输出结果是 _。 A) 5 2 B) 2 5 C) 编译出错 D) 0 381、 C语言中的函数 _。 A)可以嵌套定义 B)不可以嵌套调用 C)可以嵌套调用,但不能递归调用 D)嵌套调用和递归调用均可 382、 当调用函数时,实参是一个数组名,则向函数传送的是 _。 A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 383、 下列函数定义中,错误的是 _。 A)int f(int *p1,int p2) B)void f(int * p1,int p2) *p1+=p2;return(p2); p1+=p2;return(*p1); C)f(int *p1,int p2) D)void f(int *p1,int p2) *p1+=p2;return(*p1); *p1+=p2 384、 运行程序: long fun( int n) long t; if(n=0|n=1) t=1; else t=n-fun(n-1); return t; main() printf(%ldn,fun(3); 则输出结果是 _。 A) 1 B) 2 C) 3 D) 4 385、 main函数可以带两个形参,一般分为 argc和 argv,其中 argv可以定义为 _。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论