C语言复习题 (2)
- 格式:docx
- 大小:53.52 KB
- 文档页数:21
C语言复习题一、选择题:1.以下不是C语言的特点的是( B )A.C语言简洁、紧凑 B.能够编制出功能复杂的程序C. C语言可以直接对硬件进行操作 D.C语言移植性好2. 以下不正确的C语言标识符是( D )。
A.ABC B.abc C.a_bc D.ab.c3.一个c程序的执行是从( A ).A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4.以下不正确的语句(设有int p,q)是( D )。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q5.下列四组选项中,均不是C语言关键字的选项是( A ).A.define B.getc C.include D.whileif char sanf gotype printf case pow6.下面四个选项中,均是合法整形常量的选项是( A ).A.160B.-0xcdfC.-01D.-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x7. 下面四个选项中,均是不合法浮点数的选项是( B ).A.160.B.123C.-.18D.-e30.12 2e4.2 123e4 0.234e3 .e5 0.0 1e38. 若有代数式3ae/bc,则不正确的C语言表达式是( C )A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*39. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum 的值为(A ).A.7B.8C.9D.1010.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( A )。
A.2.500000B.2.750000C.3.500000D.0.00000011. s izeof(float)是( B )。
1计算机科学与技术专业本科班C语言程序设计期末复习题2《C语言程序设计》一、单项选择题(每小题2分,共60分)1、在VC 6.0环境中用RUN命令运行一个C程序时,实际所运行的程序的后缀是:A).CPP B) .C C) .OBJ D).EXE2、结构化程序设计所规定的三种基本控制结构是A) 输入、处理、输出B) 树形、网形、环形C) 顺序、选择、循环D) 主程序、子程序、函数3、以下正确的整型常量是:A) 16. B) -26 C) 1,000 D) 3 5 74、已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是A) 字符A B)字符a C)字符e D)非法的常量5、以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define6、以下非法的赋值语句是A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;7、C语言中运算对象必须是整型的运算符是:A) % B) / C) ! D) **8、设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值位为A) 0 B) 1 C)2 D) 39、C语言中,字符(Char)型数据在微机内存中的存储形式是:A) 反码 B) 补码 C) EBCDIG 码 D) ASCII码10、以下叙述正确的是:A) C语言总是从第一个定义的函数开始执行B) 在C语言程序中,要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分11、若已定义int型的三个量a、b、c,则以下正确的输入语句是:A) read(a,b,c); B) scanf("%d%d%d",a,b,c);C) scanf("%D%D%D",&a,%b,%c); D) scanf("%d%d%d",&a,&b,&c);12、以下叙述中正确的是A) C程序中注释部分可以出现在程序中任意合适的地方B) 花括号“{”和“}”只能作为函数体的定界符C) 构成C程序的基本单位是函数,所有函数名都可以由用户命名D) 分号是C语句之间的分隔符,不是语句的一部分13、以下数组定义中不正确的是A) int a[2][3];B) int b[][3]={0,1,2,3};C) int c[100][100]={0};D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};14、有以下程序fun(int x, int y, int z){ z=x*x+y*y; }main(){ int a=31;fun(5,2,a);printf(“%d”,a); }程序运行后的输出结果是A) 0 B) 29 C) 31 D) 无定值15、有以下程序main(){ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p); }程序运行后的输出结果是A) 非法 B)a[4]的地址C)5 D)316、有以下程序#define M(x,y,z) x*y+zmain(){ int a=1,b=2, c=3;print f(“%d\n”, M(a+b,b+c, c+a)); } 程序运行后的输出结果是A) 19 B) 17 C) 15 D) 1217、有以下程序main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);< p="">printf("%d,%d\n",k,m); }程序运行后的输出结果是A) 0,0 B) 0,1 C) 1,0 D) 1,118、有以下程序main(){ int a=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d++ +1);elseprintf("%d",++d +1);printf("%d\n",d); }程序运行后的输出结果是A) 2 B) 3 C) 43D) 44 19、与数学式子123 x nx 对应的C 语言表达式是A) 3*x^n(2*x-1) B) 3*x**n(2*x-1)C) 3*pow(x,n)*(1/(2*x-1)) D) 3*pow(n,x)/(2*x-1)20、若变量c 为char 类型,能正确判断出c 为小写字母的表达式是A) ‘a’<=c<= ‘z’ B) (c>= ‘a’)||(c<= ‘z’)C) (‘a’<=c)and (‘z’>=c) D) (c>= ‘a’)&&(c<= ‘z’)21、有以下程序main(){ char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’};int i,j;i=sizeof(a); j=strlen(a);printf(“%d,%d \b”i,j); }程序运行后的输出结果是A )9,9B )8,9C )1,8D )9,822、有以下程序#includemain(){ char *p=“abcde\Ofghjik\0”;printf(“%d \n”,strlen(p)); }程序运行后的输出结果是A) 12 B) 15 C) 6 D) 523、以下叙述中不正确的是A )C语言中的文本文件以ASC Ⅱ码形式存储数据B )C语言中对二进制文件的访问速度比文本文件快C )C语言中,随机读写方式不适用于文本文件D )C语言中,顺序读写方式不适用于二进制文件24、设有如下定义:struck sk{ int a;float b;}data;int *p;若要使P 指向data 中的a 域,正确的赋值语句是A) p=&a B) p=data.a; C) p=&data.a D) *p=data.a;25、有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]); }执行后输出结果是A) n,two B) t,one C)w,one D) o,two26、以下选项中,与k=n++完全等价的表达式是A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+127、有如下程序main(){ int i,sum;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum); }该程序的执行结果是A) 6 B) 3 C) 死循环 D) 028、有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出结果是A) 011122 B) 012 C) 012020 D) 12029、有如下程序main(){ int x=23;do{ printf(“%d”,x--);}while(!x); }执行后输出结果是A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环30、若有定义:int x,*px; 则正确的赋值表达式是:A) px=&x B) px=x C) *px=&x D) *px=*x二、填空题(每小题2分,共20分1、以下程序段的输出结果是 _______ 。
C\C++程序设计复习题一、选择题1、一个C语言程序总是从( C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定2、以下能正确定义二维数组的是( C )A.int a[][3];B.int a[][3]=2{2*3};C.int a[][3]={};D.int a[2][3]={{1},{2},{3,4}};3、设int x=3,y=4,z=5,则下列表达式中的值为0的是( D )A) …x‟&&‟y‟B) x||y+z&&y-z C) x<=y D) !((x<y)&&!z||1)4、执行以下程序段后,i的值是( C )int i=10;switch(i+1){ case 10: i++; break;case 11: ++i;case 12: ++i; break;default : i=i+1;}A) 11 B) 13 C) 12 D) 145、语句while(!e);中的条件!e等价于( B )A) e==0 B)e!=1 C) e!=0 D) 运行时出错6、下列数据中,为字符串常量的是(B )。
(A)…A‟(B)“house”(C)How do you do.(D)‟$abc‟7、用int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是( B )A) 随机值B) 0 C) 1 D) F8、在执行char str[10]=“china\0”;strlen(str)的结果是( B )A)5 B) 6 D) 7 D 99、若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是( B )A) 随机值B) m C)o D) omputer10、有以下程序( D )main(){ int i=0,x=0;for (;;){if(i==3||i==5) continue;if (i==6) break;i++;s+=i;};printf("%d\n",s);}程序运行后的输出结果是A.10B.13C.21D.程序进入死循环11、以下定义语句中正确的是( C )A.char a='A'b='B';B.float a=b=10.0;C.int a=10,*b=&a;D.float *a,b=&a;12、设有int x=11;则表达式(x++*l/3)的值为( B )。
有以下程序#include <stdio.h>void main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序运行后的输出结果是__C___。
A、0,0B、0,1C、1,0D、1,1 若变量c为char类型,能正确判断出c为小写字母的表达式是__D_____。
A. 'a'<=c<='z'B. (c>='a')||(c<='z')C. ('a'<=c)and('z'>=c)D. (c>='a')&&(c<='z')以下符合C语言语法的实型常量是__C____。
A、1.2E0.5B、3.14159EC、5E-3D、E15 若变量已正确定义,有以下程序段i=0;doprintf("%d, ",i);while(i++);printf("%d\n",i);其输出结果是____B__。
A. 0,0B. 0,1C. 1,1D. 程序进入无限循环若有以下程序段,int c1=1 ,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是____A__。
A、0B、0.5C、1D、2 以下选项中合法的字符常量是__B____。
A、"B"B、'\010'C、68D、D 有以下程序main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66↙。
c语言复习题一、单项选择题1.以下叙述中错误的是? A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识2、c语言数据的基本类型包括()A、整型、字符型、实型B、整型、字符型、实型、枚举类型C、整型、实型、枚举类型、指针类型 D、整型、字符型、实型、数组类型3.以下不合法的字符常量是A.’\019’B.’\’’’C.’\\’D.’\xcc’4、c语言允许使用的变量标识符是()A、x#yB、12shC、j_c_tD、char5.设有以下语句。
int a=1,b=2,c;c=a^(b<<2);执行后,c的值为 A.6 B.7 C.8 D.96、c语言中合法的字符常量是()A、‘\084’B、‘\X43’C、‘ab’D、“\0”7.下列标识符中,合法的变量名有? A.a.b B.$888 C.A1 D.3x568、若定义x和y为double型,则表达式:x=1,y=x*3/2的值是()A、1B、2C、 2.0D、1.59、若有以下类型说明语句:char w;int x;float y;double z;则表达式 w*x+z-y的结果为()类型A、floatB、char C 、int D、double10、下列表达式中,()可以正确表示x<=0或x>=1的关系A、(x>1)or (x<=0)B、x>1 || x<=0C、x>1 or x<=0D、x>=1 || x<=011.下列不正确的表达式是A.10%3+5%3B.10/3+5/3C.10%3/2D.(10.0/3.0%3)/212.以下四个选项中,不能看作一条语句的是A.{;}B.a=0,b=0,c=0;C.a>0;D.m=1;n=2;13.设x为int 型变量,则执行以下语句后,x的值为x=10;x+=x-=x-x;A.10B.20C.40D.3014、若定义a为整型数据变量则a=-2 L;printf(“%d\n”,a);以上语句结果为()A、赋值语句不合法B、输出值为-2C、输出值为不确定值D、输出值为215、现已定义整型变量int i=1;执行循环语句“while(i++<5)后i的值变为()A、1B、5C、6D、以上三个答案均不正确16、若执行下述程序时,从键盘输入数据3和4,则程序的输出结果是()main(){ int a ,b ,s;scanf(“%d%d”,&a,&b);s=a;if(a<b)< p="">s=b;s=s*s ;printf(“%d”,s);}A、14 B、16 C、18 D、2017、若数组名作为函数参数传递给函数,作为实参的数组名被处理为()A、该数组的长度 B、该数组的元素个数C、该数组中各元素的值 D、该数组的首地址18、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A、float型B、int型C、long型D、double型19、在c语言中,存储类型为()的变量只在使用它们的时候才占用存储空间A、static和autoB、register和autoC、static和registerD、register和extern20、下面程序片段的输出结果是()char str[]=“abcd”,*p=str;printf(“%d\n”,*(p+4));A、68 B、0 C、字符‘d’的地址D、不确定的值21、设有以下说明,已知int类型占2个字节,则下列叙述正确的是()struct st{int a;int b[2];} a;A、结构变量名a和结构成员a同名,不合法B、程序运行时将为结构体st分配6个字节的内存单元C、程序运行时不为结构体st分配内存单元D、程序运行时将为结构体变量a分配6个字节的内存单元22、求字符串长度的函数是()A、strcat B、strcpy C、strcmpD、strlen 23.现已定义整型变量 int i=1;执行循环语句“while(i++<5);”后,i的值为A.1B.5C.6D.以上三个答案均不正确24.以下叙述中错误的是A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句25.设有定义:int a=2,b=3,c=4;时,以下选项中值为0的表达式是A.(!a= =1)&& (!b= =0)B.aC. a&&bD.a||(b+b)&&(c-a)26.C语言中,定义PI为一个符号常量,正确的是A.#define PI 3.14B.define PI 3.14C.#include PI 3.14D.include PI 3.1427.下面关于switch语句和break语句的结论中,只有是正确的A.break语句是switch语句中的一部分B.在swtich语句中可以根据需要使用或不使用break语句C.在swtich语句中必须使用break语句D.以上三个结论中有两个是正确的28.有以下程序:main(){int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 A.自然数1~9的累加和 B.自然数1~10的累加和C.自然数1~9中的奇数之和D.自然数1~10的偶数之和29.在C语言函数的定义和引用中,以下描述正确的是A.必须有形式参数B.也可以没有形式参数 C.数组名不能作为形式参数 D.形式参数必须是变量名30.下列关于return语句的说法,正确的是A.必须在每个函数中都出现B.只能在除主函数之外的函数中出现一次C.可以在同一个函数中多次出现D.在主函数和其他函数中都可以出现31.下列说法不正确的是A.形式参数是局部变量B.主函数main 中定义的变量在整个文件或程序中都又效C.在一个函数的内部,可以在复合语句中定义变量D.不同的函数中,可以使用相同名字的变量32.以下叙述正确的是A.do-while语句构成的循环不能用其它语句构成的循环来代替B.do-while语句构成的循环只能用break语句退出C.用do-while语句构成的循环,在while后的表达式为非零时结束循环D.用do-while语句构成的循环,在while后的表达式为零时结束循环33.下列数组定义语句正确的是A.int a[][]={1,2,3,4,5,6};B.char a[2][3]=’a’,’b’C.int a[][3]={1,2,3,4,5,6};D.static int a[][]={{1,2,3},{4,5,6}}; 34.若定义int a[3][4];则下列选项不能表示数组元素a[1][1]地址的是A.a[1]+1B.&a[1][1]C.*(a+1)[1]D.*(a+5)35.已知int 和double类型分别占2个和8个字节,若有如下定义:Struct data{ int i;char ch;double f;}b;则结构变量b占用内存的字节数是 A.7 B.2 C.8 D.1136.对于以下递归函数f,调用f(4),其返回值为int f(int n){ return f(n-1)+n;}A.10 B.11 C.0 D.以上均不是37.有以下程序:main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf(“%d\n”,*p+*q);}程序运行后的输出结果是 A.16 B.10 C.8 D.638.C语言中操作文件的正确顺序是A.读写,关闭,打开B.打开,读写,关闭C.打开,关闭,读写D.读写,打开,关闭39.定义union s{int w,x,y,z;char c[6];};,请问执行sizeof(union s)=A.2B.6C.8D.1440.说明语句int *f();中的标识符f代表A.一个用于指向整型数据的指针变量B.一个用于指向一维数组的行指针C.一个用于指向函数的指针变量D.一个返回值为指针型的函数名二、填空题1.设有程序段:int k=10;while(k=0) k=k-1;则循环体语句执行次。
第二部分选择题1.假设整型变量a为2,使b的值为0的表达式是( )。
A)b=a/2 B)b=6-(--a) C)b=a%2 D)b=a>3?0:1提示正确答案为C2. 假设x=2.5,a=7,y=4.7,则表达式:x+a%3*(int)(x+y)%2/4的值为()。
A)2.5 B)2.75 C)3 D)9.5 提示正确答案为A3. 假设a=3,b=4,c=5,则逻辑表达式: !(a+b)+c-1&&b+c/2的值是( )。
A)true B)false C)0 D) 1 提示正确答案为D4. 假设所有变量均为整型,则表达式:(a=2,b=5,b++,a+b)的值为()。
A)7 B)8 C)6 D)2 提示正确答案为B5. 设整型变量x的值为5,y的值为2,则值为1的表达式是( )。
A)!(y==x/2) B)y!=x%3 C)x>0&&y<0 D)x!=y||x>=y6.已知a=12,表达式a+=a-=a*=a的值为()。
A)144 B)-12 C)0 D)24 提示正确答案为C6. 在下面C语言的函数说明语句中,正确的是()。
A) int fun(int x, int y);B) int fun(int x,y);C) int fun(x,y);D) int fun(int x; int y); 提示正确答案为A7. 设有整型变量a, 实型变量f,双精度型变量x,则表达式10+'b'+x*f值的类型为( )。
A) int B) float C) double D) 不能确定提示正确答案为C8. 若有int k=5; float x=1.2;则表达式(int)(x+k)的值是()。
A)5 B)6.2 C)7 D)6 提示正确答案为D9. 表达式k=(12<10)?4:1?2:3的值为()。
A) 1 B) 2 C) 3 D) 4 提示正确答案为B10. 下列哪组运算符的优先级相同且运算次序从左到右()。
一、单项选择题(10小题,每小题3分,共30分)1、若有代数式,测不正确的C语言表达式是( )。
A、a/b/c*e*3B、3*a*e/b/cC、3*a* e/b*cD、a * e/c/b * 32、下面4个选项中,是不合法的整型常量的选项是( )A、——0f1B、—0xcdfC、—018D、—0x48eg —0xffff 017 999 —0680011 12,456 5e2 03f3、下面4个选项中,是合法整型常量的选项是( )。
A、160B、—0xcdfC、—01D、—0x48a—0xffff 01a 986.012 2e5011 0xe 0668 0x4、下面4个选项中,是不合法的用户标识符的选项是( )A、AB、floatC、b—aD、_123P_0 la0 goto tempdo _A int INT5、以下C程序的运行结果是( )。
(注:口表示空格)# include <stdio. h>int main( ){ long y=23456;printf("y=%3x\n",y);printf("y= %8x\n",y);printf("y=%#8x\n",y);return 0;}A、y=5ba0y=口口口口5ba0y=口口0x5ba0B、y=口口口Sba0y=口口口口口口口5ba0y=口口0x5ba0C、y=5baoy=5baoy=0x5baoD、y=5ba0y=口口口口5ba0y=# # # # 5ba06、以下程序的运行结果是( )。
# include <stdio.h>int main( ){ int m=5,n=10;printf("%d,%d\n",m++,––n);return 0;}A、5,9B、6,9C、5,10D、6,107、以下程序的输出结果是( )。
(注:口表示空格)# include <stdio.h>int main( ){ printf("\n* s1= %15s*","chinabeijing");printf("\n* s2=% – 5s*","chi");return 0;}A、* s1=chinabeijing口口口*B、*s1=chinabeijing口口口** s2=** chi* *s2=chi口口*C、*s1=*口口chinabeijing*D、*s1=口口口chinabeijing** s2=口口chi* *s2 = chi口口*8、以下不符合C语法的赋值语句是( )。
1. C语言中运算对象必须是整型的运算符是()。
A、=B、%=C、〈=D、/2.下列字符序列中,不可用作C语言标识符的是()。
A、b70B、a_1C、#abD、symbol3.下列程序的输出结果是()。
main(){int a=011;printf("%d\n",++a);}A、11B、9C、12D、104.逻辑表达式5>3&&2||8<4-!0的值为:( )A、3B、2C、1D、05.下列选项中,合法的C语言关键字是()。
A、integerB、defaultC、VARD、cher6.下列程序的输出为()。
main(){ int y=10;while(y--);printf("y=%d\n",y);}A、y=-1B、y=0C、y=1D、while构成无限循环7.以下表述中正确的是( ).A、在do-while循环中,while表达式的值不能为"假"B、do-while循环中,while语句不能省略C、do-while循环中,while(表达式)后面不能加分号D、除了for循环,其他循环中都不能使用复合语句8.以下不能正确定义二维数组的选项是()。
A、int a[2][]={{1,2},{3,4}};B、int a[2][2]={{1},2,3};C、int a[2][2]={{1},{2}};D、int a[][2]={1,2,3,4};9. int a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是()。
A、for(i=1;i<11;i++)a[i]=i;B、for(i=1;i<11;i++)a[0]=1;C、for(i=1;i<11;i++)a[i+1]=i;D、for(i=1;i<11;i++)a[i-1]=i;10.若有说明: int a[3][4]={0};则下面正确的叙述是()。
注意:超纲题不需要做!1、C语言提供合法的数据类型关键字是( )A)Double B)short C)integer D)Char2、对于下列各字符串,请选取择正确的标识符( )。
A)Boo B)for C)5abc D)I like C3、下列不属于字符型常量的是()A)‘A’B)“B”C)‘\n’ D)‘D’4、下面四个选项中,均是正确的八进制数或十六进制数的选项是。
A)-10 0x8f -011 B) 010 -0x11 0xf1C) 0abc -017 0xc D) 0a12 -0x123 -0xa5、若有定义:int a = 7; float x = 2.5 , y = 4.7 ;则表达式x + a % 3 * (int) (x + y) % 2/4 的值是A) 2.750000 B) 0.00000 C) 3.5000006、已知ch是字符型变量,下面不正确的赋值语句是。
A)ch = 5 + 9; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6';7、错误的转义字符是 ( )A)'\091' B)'\\' C)'\0' D)'\''8、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是 ( )A)2,1,2 B)2,0,3 C)2,2,3 D)2,1,39、在C语言中,错误的常数是 ( )A)1E+0.0 B)5. C)0xaf D)0L10、下列正确的标识符是:A)12ab B)float C)aw~1e D)b6ty11、对y在[3,23]和[100,200]范围内为真的确表达式为:A)(y>=3)&&(y<=23)&&(y>=100)&&(y<=200)B)(y>=3)||(y<=23)||(y>=100)||(y<=200)C)(y>=3)&&(y<=23)||(y>=100)&&(y<=200)D)(y>=3)||(y<=23)&&(y>=100)||(y<=200)12、在一个C程序中A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置13、8以下能正确地定义整型变量a,b和c并为其赋初值5的语句是A)int a=b=c=5;B)int a,b,c=5;C)int a=5,b=5,c=5;D)a=c=b=5;14、C语言中,long类型的数据占字节数为()A) 1 B) 2 C) 4D) 815、下列为合法的用户标识符为()A) _98B) P#d C) a* D) void16、如果x为float类型变量,则以下语句输出为()x=213.82631;printf(“%4.2\n”,x);A) 宽度不够,不能输出B) 213.82 C) 213.82631 D) 213.8317、在C语言中,合法的字符常量是( )A)'\084' B)'\x43' C)'ab' D)"\0"18、不能正确表示ab除以cd的C语言表达式是()A) a*b/c*d B) a/(c*d)*b C)a*b/c/d D) a*b/(c*d)19、以下不符合C语言语法的赋值语句是(D)A) i++; B) i=i=5; C) k=(2*4,k*4); D) y=float(i);20、若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为(D)A) float B) int C) char D) double21、下列程序的输出结果是#include<stdio.h>main(){float x,y;scanf("%f",&x);if(x<0.0)y=0.0;else if((x<5.0)&&(x!=2))y=1.0/(x+2.0);else if(x<10.0)y=1.0/x;else y=10.0;printf("%f\n",y) ; }输入:2.0A)0.000000 B)0.250000 C)0.5000000 D)1.00000022、下列程序的输出结果是main(){int m=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--) ; }A)7 B)6 C)5D)423、下列程序的输出结果是main(){int a=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a); }A)-1 1 B)0 1 C)1 0D)0 024、下列程序的输出结果是main(){int x=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;elsex=-1;print("%d\n",x);}A)-1B)0 C)10 D)225、下列程序的输出结果是main(){int a,b,c,x;a=b=c=0;x=35;if(!a) x--;else if(b);if(c)x=3;elsex=4;print("%d\n",x) ; }A)34 B)4C)35 D)326、下列程序的输出结果是2 main(){int a=2,b=-1,c=2;if (a<b)if(b<0)c=0;elsec+=1;printf("%d\n",c) ; }27、下列程序的输出结果是103 main(){int a=-1,b=4,k;k=(a++<0)&&(!(b--<=0));printf("%d%d%d\n",k,a,b) ; } 28、下列程序的输出结果是004 main(){int a=-1,b=4,k;k=(++a<0)&&(!(b--<=0));printf("%d%d%d\n",k,a,b) ; } 29、下列程序的输出结果是#include<stdio.h>main(){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,b) ; }A)a=2,b=1B)a=1,b=1C)a=1,b=0 D)a=2,b=230、当a的值分别为:1,2,3时,程序的结果是main(){int a;printf("Please enter a=");scanf("%d",&a);switch(a){case 1:printf("*");break;default:print("#");case 2:printf("-") ; } }1:*2:-3:#-31、下列程序运行结果#include<stdio.h>main(){int x=23;doprintf("%2d",x--);while(!x) ; }A)321 B)23C)无D)死循环32、下列程序运行结果#include<stdio.h>main(){int i=0,sum=1;dosum+=i++;while(i<6);printf("%d\n",sum) ; }A)15 B)16C)17 D)1833、下列程序运行结果#include<stdio.h>main(){int xfor (x=3;x<6;x++)printf((x%2)?("**%d"):("##%d\n"),x) ; }A)**3##4B)##3 C)##3**4 D)**3##4**5 **4##5 **5 ##534、下列程序的输出结果是main(){float x,y,z;scanf(%f%f",&x,&y);z=x/y;while(1){if (fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak; }printf("%f\n",y) ; }输入3.6 2.4回车,则结果为A)1.500000 B)1.600000 C)2.000000 D)2.40000035、下列程序的输出结果是main(){int i=0,a=0;while(i<20){for(;;)if (i%10==0) break; else i--;i+=11;a+=i ; }printf("%d\n",a) ; }A)21 B)32C)33 D)1136、下列程序的输出结果是main(){int u=24,v=16,w;while(v){w=u % v; u=v ; v=w;}printf("%d\n",u); }A)7 B)8C)9 D)1037、假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do{ b-=a;a++;}while (b--<0);A) 9 B) -2 C) -1 D) 838、以下程序的输出结果是(超纲)main(){ int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2339、有以下程序(程序错误)main(){ int i, j;for(j=10;j<11;j++){ for(i=9;i=j-1)printf("%d",j);}}输出结果是A) 11 B) 10 C) 9 D) 10 11。
《C语言》复习资料姓名班级成绩一、选择题1. 若x、i、j和k都是int型变量,则计算下面的表达式后,x的值是:() X=(i=4, j=16, k=32)A. 4B. 16C. 32D. 522. 在C语言中,要求运算数必须是整型数的运算符是:()A. /B. ++C. !=D. %3. putchar( ) 函数可以向终端输出一个。
()A. 整型变量表达式的值B. 实型变量的值C. 字符串D. 单个字符或字符型变量的值4. 以下说法正确的是:()A. 输入项可以为一个实型常量,如scanf(“%f”,3.5);B. 只有格式控制,没有输入项,也能进行正确输入,如:scanf(“a=%d,b=%d”);C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:scanf(“%4.2f”,&f);D. 当输入数据时,必须指时变量的地址,如:scanf(“%f”,&f);5. 判断char型变量ch是否为大写字母的正确表达式是: ( )A. (‘A’<=ch<=’Z’)B. (ch>=’A’ ) & (ch<=’Z’)C. (ch>=’A’) && (ch<=’Z’)D. (‘A’<=ch) AND (‘Z’>=ch)6. 设x、y、和z是int型变量,且x=3, y=4, z=5 ; 则下面表达式中值为0的是: ( )A. ‘x’ && ‘y’B. x<=yC. x||y+z && y-zD. !((x<y) && !z||1)7. 若希望当A的值为奇数时,输出为“真”,当A的值为偶数时,输出为“假”。
则以下错误的是:()A. if (A%2==1) printf(“真”); else printf(“假”);B. if (A%2==0) printf(“真”); else printf(“假”);C. if (A%2==0) printf(“假”); else printf(“真”);D. if (A%2!=0) printf(“真”); else printf(“假”);8. 已知int x=10,y=20,z=30; 以下语句执行后,x,y,z 的值是:( )If (x>y)Z=x; x=y; y=z;A. x=10,y=20,z=30B. x=20,y=30,z=30C. x=20,y=30,z=10D. x=20,y=30,z=209. 若运行时给变量x输入12,则以下程序的运行结果是:( )Main( ){int x,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A. 0B. 22C. 12D. 1010. C语言中while和do-while循环的主要区别是: ( )A. do-while的循环体至少要无条件执行一次B. while的循环控制条件比do-while的循环控制条件更严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句11. 以下对一维数组a的说明,正确的是: ( )A. int a(10)B. int n=10,a[n];C. int n;D. #define SIZE 10scanf(“%d”,&n); int a[SIZE];int [n];12. 以下对二维数组a说明正确的是: ( )A. int a[3][];B. float a(3,4);C. float a[3][4];D. float a(3)(4);13. 对以下说明语句的正确理解是: ( )int a[10]={6,7,8,9,10};A. 将5个初值依次赋给a[1]至a[5]B. 将5个初值依次赋给a[0]至a[4]C. 将5个初值依次赋给a[6]至a[10]D. 因为数组长度与初值的个数不相同,所以此语句不正确14. 判断字符串s1是否大于字符串s2,应当使用: ( )A. if (s1>s2)B. if (strcmp(s1,s2))C. if (strcmp(s2,s1)>0)D. if (strcmp(s1,s2)>0)15. 设以下变量均为int类型,则值不等于7的是: ( )A. (x=y=6,x+y,x+1)B. (x=y=6,x+y,y+1)C. (x=6,x+1,y=6,x+y)D. (y=6,y+1,x=y,x+1)16. 以下正确的字符串结束标志是: ( )A. 0B. \0C. \\D. \17. 以下能正确定义整形变量a,b和c并为其赋初值5的语句是:( )A. int a=b=c=5;B. int a,b,c=5;C. a=5,b=5,c=5;D. a=b=c=5;18. 一个C语言程序是由。
C语言习题集一、单项选择题1、C语言提供的合法关键字是_______。
A、AUTOB、includeC、unsignedD、dafault2、合法的C语言标识符是__________。
A、2aB、sumC、defaultD、a+b3、下面四个选项中,不是C语言整型常量的是。
A、01B、0x11C、081D、-327684、下面四个选项中正确的实型常量是。
A、0x12B、-12345.e-3C、Ie0.5D、e-55、若a为整型变量,则下面语句。
a=-2L;printf(“%d\n”,a);A、赋值不合法B、输出值为-2C、输出为不确定值D、输出值为-26、在C语言中,要求参加运算的数必须是整数的运算符是。
A、/B、!C、%D、= =7、字符串“\\012\012”在内存中占用的字节数是个。
A、4B、5C、6D、78、下列说法中,错误的是。
A、变量的定义可以放在所有函数之外B、变量的定义可以不放在本编译单位中,而放在其他编译单位中C、变量的定义可以放在某个函数的函数头中D、变量的定义可以放在某个复合语句的开头9、下列说法中,正确的是。
A、自动型变量是分配在内存的数据区的B、寄存器型变量是分配在内存的数据区中的C、表态型变量是分配在内存的数据区中的D、外部参照型变量是分配在内存的数据区中的10、在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围是。
A、-128~127B、-32768~32767C、0~65536D、0~214748364711、下面不正确的字符串常量的。
A、’abc’B、”12’12”C、”0”D、” ”12、char型常量在内存中存放的是。
A、ASCII代码值B、BCD代码值C、内码值D、十进制代码值13、以下程序段。
int x=2,y=3;printf( x>y ? ”****=%d”: “###y=%d”,x,y);A、输出控制格式错误B、输出为:****x=2C、输出为:###y=2D、输出为:###y=314、以下程序的输出为。
C语言期末试题2(带答案)13-14-2 48课时C语言模拟练习总共42题共100分答卷编号:12311112222211333答题开始时间:2014-06-09 10:52:09答题结束时间:2014-06-09 10:52:13考生姓名:翟方正考试时间:00:00:04分钟总得分:0分评卷人:系统自动评卷评卷时间:2014-06-09 10:52:13一、单选题(共15题,共30分)1. 在C语言中,回车换行符是()(2分)A.'\n'B.'\t'C.'\v'D.'\b'标准答案:A考生答案:2. 以下选项中,不能作为合法常量的是()(2分)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0标准答案:B考生答案:3. 若有语句int *point,A=4;和point=&A下面均代表地址的一组选项是()(2分)A.A,point,*&AB.&*A,&A,*pointC.*&point,*point,&AD.&A,&*point ,point标准答案:D考生答案:4. 设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是()(2分)A.x&&yB.x<=yC.x︱︱++y&&y-zD.!(x<y&& !z︱︱1)<="" p="">标准答案:D考生答案:5. 以下叙述中正确的是()(2分)A.C语言可以用来编写系统软件,也可以用来编写应用软件B.函数体不必用一对大括号{}括起来C.C程序的每一行只能写一条语句D.对一个C程序进行编译的过程可以发现注释中的拼写错误标准答案:A考生答案:6. 执行下面程序段后,c3中的值是()int c1=1,c2=2,c3;c3=c1/c2; (2分)A.0B.1/2C.0.5D.1标准答案:A7. 以下程序的输出结果是( )main(){ int a=12,b=12;printf("%d %d\n",--a,++b);} (2分)A.10 10B.12 12C.11 10D.11 13标准答案:D考生答案:8. 以下定义语句中,错误的是( ) (2分)A.int a[]={1,2};B.char *a[3];C.char s[10]="test";D.int n=5,a[n];标准答案:D考生答案:9. 以下程序的输出结果是()main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);} (2分)A.k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0xbD.k=11,k=13,k=b 标准答案:D考生答案:10. main( ){int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7&&p[i]%3){k =k+ p[i]; i++;}printf("%d\n", k);}执行后输出结果是()(2分)A.58B.53C.38D.24标准答案:C考生答案:11. 以下程序段的输出结果是()int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z); (2分)A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5考生答案:12. 若以下程序所生成的可执行文件名为file1.exe,则当在操作系统状态下输入下述命令行执行该程序时FILE1 CHINA BEIJING SHANGHAI程序的输出结果是()#includemain(int argc,char *argv[]){while (argc-->1){++argv;printf("%s ",*argv);}printf("\n");} (2分)A.CHINA BEIJING SHANGHAIB.FILE1 CHINA BEIJING SHANGHAIC.C B SD.F C B标准答案:A考生答案:13. 执行下述程序的输出结果是()#includeint power(int x,int y);main(){float a=2.6,b=3.4;int p;p=power((int)a,(int)b);printf("%d\n",p);}int power(int x,int y){int i,p=1;for (i=y;i>0;i--)p=p*x;return (p);} (2分)A.8B.9C.27D.81标准答案:A考生答案:14. 有以下程序main(){ int x[8]={8,7,6,5,0,0}, *s;s=x+3;printf("%d\n",s[2]);}A.随机值B.0C.5D.6标准答案:B考生答案:15. 执行下述程序的输出结果是()#includemain(){int aa[3][3]={{2},{4},{6}};int i,*p=&aa[0][0];for (i=0;i<2;i++){if (i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}printf("\n");} (2分)A.23B.26C.33D.36标准答案:A考生答案:二、判断题(共10题,共10分)1. C语言中,标识符的第一个字符可以是数字(1分) ( )标准答案:错误考生答案:2. "hello!"是合法的字符串常量表示形式(1分) ( )标准答案:正确考生答案:3. 若有定义int a[3][4];则a[1+1][0]是对数组a元素的正确引用形式(1分) ( )标准答案:正确考生答案:4. 在switch语句中使用continue语句与使用break语句作用相同(1分) ( )标准答案:错误考生答案:5. 用do-while语句构成循环时,只要while后的表达式为0时就结束循环(1分) ( )标准答案:正确考生答案:6. char a[]={0,1,2,3,4,5,6};不是正确的语句(1分) ( )标准答案:错误考生答案:7. 已经定义了指针变量p,且p指向变量a(即p=&a),则*p与a的含义相同。
复习题(一)1。
用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。
【答案】编译目标2。
下列符号串中,属于C语言合法标识符的是()①else ②a-2 ③_00 ④00【答案】③3.下列说法中,正确的是()①主函数名是由程序设计人员按照“标识符”的规则选取的②分号和回车符号都可以作为一个语句的结束符号③在程序清单的任何地方都可以插入一个或多个空格符号④程序的执行,总是从源程序清单的第1行开始【答案】③4.-12345E-3代表的十进制实数是________________________.【答案】—12.3455.设字符型变量ch中存放字符“A”,则执行“ch+++2”后,ch中的字符是________。
【答案】B6.设字符型变量ch1中存放的字符是“A",字符型变量ch2中存放的字符是“B”,则执行“!(ch1=’B')&&(ch2='C')”的运算后,变量ch2中的字符是_____________.【答案】B6-1.设整型变量m,n,a,b,c,d均为1,执行“(m=a〉b)&&(n=a>b)”后m,n 的值是()①0,0 ②0,l ③1,0 ④1 ,l【答案】②。
7.设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是_______________. 【答案】l8.在C语言中,如果某个关系表达式成立(真),则该关系表达式的值是____;如果某个逻辑表达式为假,则该逻辑表达式的值是_________.【答案】1 09.设有整型变量x,如果表达式“!x”值为0,则x的值为_________;如果表达式“!x"值为1,则x的值为___________。
【答案】非010.下列表达式中,不属于逗号表达式的是()①a=b,c ②a,b=c ③a=(b,c) ④a,(b=c)【答案】③11.在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【答案】多分支12.在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
《C语言》习题2一、单项选择题1、一个C程序的执行是从()A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束2、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是()A.3 B.0 C.-12 D.93、若有char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是( )。
A.cd\0e B.'c''d' C.cd D.cd e4、执行char str[10]=”Ch\nina”; strlen(str)的值是()A.5 B.6 C.7 D.95、组成C程序的基本单位是()A.函数B.标识符C.表达式D.语句6、设int类型的数据长度为2字节,则该类型数据的取值范围是()A.0至65536 B.0至65535C.-32767至32768 D.-32768至327677、在C语言中,逻辑值“真”是用()表示的。
A.预定义为真值的宏B.非零数C.正数D.非零整数8、C语言对于嵌套if语句规定else总是与()匹配。
A.与最外层的if B.与之前最近的ifC.与之前最近的不带else的if D.与最近的{ }之前的if9、数组定义char a[10]={'`a`,`b`,`c`}:包括了几个元素()A.3 B.9 C.4 D.1010、若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为()A.12 34 B.12,34 C.1234 D.12:3411、以下程序的输出结果是()#include<stdio.h>void main(){char s[]="159",*p; p=s;printf("%c",*p++); printf("%c",*p++);}A. 15B. 16C. 12D. 5912、以下程序的输出结果是()。
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
全国计算机⼆级C语⾔各章节复习题第⼀章C语⾔概述略第2章程序的灵魂----算法⼀、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有⼀个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)2.1以下叙述中正确的是A)C语⾔⽐其他语⾔⾼级B)C语⾔可以不⽤编译就能被计算机识别执⾏C)C语⾔以接近英语国家的⾃然语⾔和数学语⾔作为语⾔的表达形式D)C语⾔出现的最晚,具有其他语⾔的⼀切优点正确答案: C2.2 以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在⼀个函数中定义另⼀个函数C)main()函数必须放在其他函数之前D)所有被调⽤的函数⼀定要在调⽤之前进⾏定义声明正确答案: A2.3 以下说法正确的是A)C语⾔程序总是从第⼀个的函数开始执⾏B)在C语⾔程序中,要调⽤函数必须在main()函数中定义C)C语⾔程序总是从main()函数开始执⾏D)C语⾔程序中的main()函数必须放在程序的开始部分正确答案: C2.4 C语⾔规定,在⼀个源程序中,main函数的位置A)必须在最开始B)必须在系统调⽤的库函数的后⾯C)可以任意D)必须在最后正确答案: C2.5 以下叙述不正确的是A)⼀个C源程序可由⼀个或多个函数组成B)⼀个C源程序必须包含⼀个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于⼀条语句的后⾯任意位置正确答案: D2.6 下列叙述中正确的是A)C语⾔编译时不检查语法B)C语⾔的⼦程序有过程和函数两种C)C语⾔的函数可以嵌套定义D)C语⾔的函数可以嵌套调⽤正确答案: D2.7 以下叙述正确的是A)在C程序中,每⾏中只能写⼀条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,⽆论是整数还是实数,都能被准确⽆误地表⽰D)在C程序中,%是只能⽤于整数运算的运算符正确答案: D2.8 以下说法错误的是A)⼀个算法应包含有限个步骤B)在计算机上实现的算法是⽤来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执⾏有限次后实现D)算法的⽬的是为了求解正确答案: C2.9 算法是指为解决某个特定问题⽽采取的确定且有限的步骤,下⾯不属于算法的五个特性的是A)有零个输⼊或多个输⼊B)⾼效性有效性C)有穷性D)确定性正确答案: B2.10 下列关于C语⾔的说法不正确的是A)C语⾔既具有⾼级语⾔的⼀切功能,也具有低级语⾔的⼀些功能B)C语⾔中的每⼀条执⾏语句都必须⽤分号结束,分号不是C语⾔的⼀部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地⽅D)命令⾏后⾯不能加分号,命令⾏不是C语⾔的语句正确答案: B2.11 以下说法错误的是A)⾼级语⾔都是⽤接近⼈们习惯的⾃然语⾔和数学语⾔作为语⾔的表达形式B)计算机只能处理由0和1的代码构成的⼆进制指令或数据C)C语⾔源程序经过C语⾔编译程序编译之后⽣成⼀个后缀为.EXE(c)的⼆进制⽂件D)每⼀种⾼级语⾔都有它对应的编译程序正确答案: C2.12 C语⾔中⽤于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,break C)for,while,do-while D)if,for,continue 正确答案: A⼆、填空题(请将每⼀个空的正确答案写在答题卡相应序号后。
第六章指针601.若有以下定义和语句:doubler=99,*p=&r;*p=r;则以下正确的叙述是A)以上两处的*p含义相同,都说明给指针变量p赋值B)在“doubler=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元C)语句“*p=r;”把变量r的值赋给指针变量pD)语句“*p=r;”取变量r的值放回r中答案:D602.以下程序执行后,a的值是mian(){inta,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;printf(“%d\n”,a);}A)4B)1C)0D)运行时出错,无定值答案:c603.下面关于指针的正确叙述是A)指针就是计算机中用来定位的一种硬件B)指针变量与普通内存变量一样C)所谓指针实际上就是内存地址D)因为内存地址一直存在,所以不论是否定义指针变量,指针变量都一直存在604.下面能正确进行字符串赋值操作的语句是A)chars[5]={“ABCDE”};B)chars[5]={‘A’、’B’、’C’、’D’、’E’};C)char*s;s=”ABCDEF”;D)char*s;scanf(“%s”,s);答案:c605.设有如下一段程序:int*var,ab;ab=100;var=&ab;ab=*var+10;执行上面程序段后,ab的值为A)120B)110 C)100D)90答案:B606.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是A)pb=&xB)pb=xC)*pb=&xD)*pb=*x答案:A607.设有如下程序:#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf(“%d\n”,**k);}上述程序的输出结果是A)运行错误B)100C)i的地址D)j的地址答案:B608.若有定义:inta[10],*p=a;则p+5表示A)元素a[5]的地址B)元素a[5]的值C)元素a[6]的地址D)元素a[6]的值答案:A609.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是A)p+1B)a+1C)&a[1]D)p答案:D610.若有定义:inta[10];则数组a中首元素的地址可表示为A)aB)a+1C)&aD)&a[1]答案:A611.请阅读程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf(“%d\n”,a[2]);}上面程序的输出结果是A)6B)8C)4D)2答案:A612.下面程序段的运行结果是char*p=”%d,a=%d,b=%d\n”;inta=123,b=10,c;c=a%b;p+=3;printf(p,c,a,b);A)3,a=123,b=10B)a=3,b=123C)a=123,b=10D)以上结果都不对答案:B613.以下程序的运行结果是#include“stdio.h”main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12}; int*p=a+5,*q;*q=*(p+5);printf(“%d%d\n”,*p,*q);}A)运行后报错B)611C)610D)55答案:B614.阅读程序:#include<stdio.h>main(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(“%x\n”,p);printf(“%x\n”,p+9);该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf 语句输出结果是A)203B)204C)1a4D)1a6答案:D615.以下程序的输出结果是main(){chara[10]={'1','2','3','4','5','6',' 7','8','9',0},*p;/*0即'\0'*/inti;i=8;p=a+i;printf(“%s\n”,p-3);}A)6B)6789C)'6'D)789答案:B616.已知指针p的指向如下图所示,则执行语句*--p;后*p的值是a[0]a[1]pa[2]a[3]a[4]┌──┬──┬──┬──┬──┐│10│20│30│40│50│└──┴──┴──┴──┴──┘A)30B)20C)19D)29答案:B617.下列程序的输出结果是main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf(“%d”,*(p++));printf(“%d\n”,**k);}A)44B)22C)24D)46答案:C618.以下程序段给数组所有的元素输入数据,请选择正确答案填入。
一、选择题1. 以下程序的运行结果是。
#include <stdio.h>int main( ){ int m=5, n=10;printf(“%d, %d\n”,m++, --n);return 0;}A.5,9 B.6,9 C.5,10 D.6,102. 有定义语句int a,b; ,若要通过语句scanf(“%d, %d”, &a, &b); 使变量a得到数值6,变量b得到数值5,下面形式中错误的是。
(注:□代表空格)A.6,5<回车> B.6,□□5<回车>C.6 5<回车> D.6,<回车>5<回车>3. 以下程序的输出结果是。
(注:□代表空格)#include <stdio.h>int main( ){ printf(“\n*s1=%15s*”, “chinabeijing” );pirntf(“\n*s2=%-5s*”, “chi”);return 0;}A.*s1=chinabeijing□□□* B.*s1=chinabeijing□□□* *s2=**chi* *s2=chi□□*C.*s1=*□□chinabeijing* D.*s1=□□□chinabeijing* *s2=□□chi* *s2=chi□□*4. 已有如下定义语句和输入语句,若要求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□20B<回车> B.10□A□20□B<回车>C.10□A□20B<回车> D.10A20□B<回车>5. 已有定义int x; float y; 且执行scanf(“%3d%f”, &x,&y); 语句,若从第一列开始输入数据12345□678<回车>,则x的值为(1),y的值为(2)。
C语言程序设计复习题二一.单项选择题1.按照C语言的规定,能作为用户标识符的是()。
A)int B)5a C)abc_123 D)unsigned2.编译操作的功能是把源程序转换成()。
A)源程序B)目标程序C)可执行程序D)汇编程序3.定义下面语句,编译会出错的是()。
A)char a='x'; B)char a='\t'; C)char a='cc'; D)char a='\101';4.以下选项中正确的定义语句是()。
A)double x; y; B)double x=y=7; C)double x=7, y=7; D)double, x, y;5.若有定义int x, y;并已正确给变量赋值,则以下选项中与表达式(x-y) ? (x++): (y++)中的条件表达式(x-y)等价的是()。
A)(x-y>0) B)(x-y<0) C)(x-y<0 || x-y>0) D)(x-y==0)6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。
A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定7.设有定义:int x=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)x++ B)x+=1 C)++x D)x+18.若有定义语句:int x=10;,则表达式x-=x+x的值为()。
A)-20 B)-10 C)0 D)109.有以下程序void main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是()。
A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,110.以下叙述中正确的是()。
A)C语言是一种非结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计不提倡模块化的设计方法11.有以下程序#include <stdio.h>void main(){ char e1,e2;e1=’A’+’8’-‘4’;e2=’A’+’8’-‘5’;printf(“%c,%d\n”,e1,e2);}已知字母A的ASCII码为65,程序运行后的输出结果是()A)E,68 B)D,69 C)E,D D)输出无定值12.有以下程序void main(){ int a=0,b=0;a=10; /*给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b);}程序运行后输出结果是()。
一、选择题1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 A 。
A. mainB. MAINC. nameD. function2. 在以下关于C 语言的注释的叙述中,不正确的是 C 。
A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示B .编译器在编译一个程序时,将跳过注释,不对其进行处理C .编译器在编译一个程序时,可发现注释中的单词拼写错误D .程序中注释的多少不会影响所生成的可执行文件的长度3. 以下叙述不正确的是 。
A .在C 程序中,严格区分大小写字母B .一个C 源程序有且仅有一个main 函数C .在C 程序中,注释只能位于一条语句的后面D .一个C 程序总是从main 函数开始执行4. 下列合法的标识符为A. abde+B. #KDJFC. 67KDJD. DK3_5. 关于字符串和字符的关系正确的是A. “A ”与’A’是相同的B. 字符串是常量,字符是变量C. “A ”与’A’是不同的D. “A ”与“A ”是相同的6. 下面关于语句的说法正确的是A. 下面这两段程序的执行效果是一致的B. 空语句是只有一个分号的语句,它其实什么也不干C. 语句的构成不一定需要分号D. 语句的书写对程序的运行不起作用,因此可以随便写都可以7. 以下各标识符中,合法的用户标识符组为 D 。
A. PAd ,P#d ,b -b ,abc ,_0123,ssipedB. cin ,a10,CPP ,float ,del_word ,signedC. void ,max ,hiy ,<fr>,list ,*jerif (x>y){z=x; s=z*z;}else {z=y;s=1/(z*z);}if (x>y) z=x; s=z*z; elsez=y;s=1/(z*z);D.a,temp,_isw,INT,keep,wind8.字符串“\”EOF= -\61\””的长度是。
A.8 B.9 C.12 D.非法字符串sin在C程序中对应的不正确的表达式为。
9.数学式xA.sqrt(sin(x)>0?sin(x):-sin(x)) B.sqrt(fabs(sinx))C.sqrt(sqrt(sinx*sinx)) D.fabs(sqrt(sin(x)))10.下列是C语言的有效标识符?A._No1B.No.1 C.12345D.int11.C语言中,表示一条语句结束的标号是 BA.#B.; C.//D.}12.每个C程序中都必须有且仅有一个 CA.类B.预处理命令C.主函数D.语句13.下列数据类型不是C语言基本数据类型的是D 。
A.字符型B.整型C.实型D.数组14.下列字符列中,可作为C语言程序自定义标识符是。
A.switch B.file C.break D.do15.运算符+、<=、=、% 中,优先级最低的运算符是。
A.+ B.<= C.= D.%16.下列字符列中,可以作为“字符串常量”的是。
A.ABC B.″xyz″ C.′uvw′ D.′a′17.字符串"vm\x43\\\np\102q"的长度是。
A.8 B.10 C.17 D.16 18.在C语言中,自定义的标识符。
A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写19.设x和y均为逻辑型变量,则x && y为真的条件是。
A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假20.若给定条件表达式(m)?(a++): (a--),则其中表达式m 。
A. 和(m= =0)等价B. 和(m= =1)等价C. 和(m!=0)等价D. 和(m!=1)等价21.在if语句中,用作判断的表达式为。
A. 关系表达式B. 逻辑表达式C. 算术表达式D. 任意表达式22.设i和k都是int类型,则以下for循环语句。
for ( i=0, k= -1; k=1; i++, k++ ) printf("****\n");A. 判断循环结束的条件不合法B. 是无限循环C. 循环体一次也不执行D. 循环体只执行一次23.若有以下语句,则输出结果为。
int a=2,b=1;string s1;s1= a>b?"a大于b":"a小于b";printf("%s\n", s1);A. a大于bB. a小于bC. 1D. 输出语句有错24.int k=10;while(k=0) k=k-1;则下面描述正确的是。
A. while循环执行10次B. 循环是无限循环C. 循环体语句一次也不执行D. 循环体语句执行一次25.int a=1,b=2,c=2,t;while(a<b) {t=a;a=b;b=t;c--;}printf("%d,%d,%d\n",a,b,c);运行结果为。
A. 1,2,0B. 2,1,0C. 1,2,1D. 2,1,126.int x=-1;do{x=x*x;}while(!x);下列说法正确的是。
A. 是死循环B. 循环执行两次C. 循环执行一次D. 有语法错误27.以下能正确计算1*2*3*…*10的程序段是。
A.do {i=1;s=1;B. do {i=1;s=0;s=s*i; i++;} s=s*i;i++;}while(i<=10); while(i<=10);C. i=1;s=1;D. i=1;s=0;do {s=s*i; do{s=s*i;i++;} i++;}while(i<=10); while(i<=10);28.以下描述正确的是。
A. 由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句B. do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C. 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D. do-while循环中,根据情况可以省略while29.while和do-while循环的主要区别是。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句30.下面有关for循环的正确描述是。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C. for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来31.对for(表达式1;;表达式3)可理解为。
A. for(表达式1;0;表达式3)B. for(表达式1;1;表达式3)C. for(表达式1;表达式1;表达式3)D. or(表达式1;表达式3;表达式3)32.在C编程语言中,以下正确的描述是。
A. continue语句的作用是结束整个循环的执行B. 只能在循环体内和switch语句体内使用break语句C. 在循坏体内使用break语句或continue语句的作用相同D. 从多层循环嵌套中退出,只能使用goto语句33.下面程序段。
for(t=1;t<=100;t++){scanf("%d",&x);if(x<0) continue;printf("%d\n",t);}A. 当x<0时整个循环结束B. x>=0时什么也不输出C. cout永远也不执行D. 最多允许输出100个非负整数34.定义一个函数实现交换x和y的值,并将结果正确返回。
能够实现此功能的是。
A. swap(int x, int y){ int t; t=x; x=y; y=t; }B. swap(int *x, int *y){ int t; t=x; x=y; y=t; }C. swap(int *x, int *y){ int t; t= *x; *x = *y; *y=t; }D. swap(int *x, int *y){ int *t; t=x; x=y; y=t; }35.若有代数式3ae/bc,则不正确的C语言表达式是。
A. a/b/c*e*3B. 3*a*e/b/cC. 3*a*e/b*cD. a*e/c/b*336.以下表达式值为3的是。
A. 16-13%10B. 2+3/2C. 14/3-2D. (2+6)/(12-9)37.设有说明语句,int k=7, x=12;则以下能使值为3的表达式是。
A. x%=(k%=5)B. x%=(k-k%5)C. x%= k-k%5D. (x%=k)-(k%=5)38.若有条件表达式(exp)? A++: b--,则以下表达式中能完全等价于表达式(exp)的是。
A. (exp= =0)B. (exp!=0)C. (exp= =1)D. (exp!=1)39.设有以下语句:typedef struct REC{ char c; int a[4];} REC1;则下面叙述中正确的是。
A.可以用REC定义结构体变量B.REC1是struct REC类型的变量C.REC是struct类型的变量D.可以用REC1定义结构体变量40.下列关于结构的语法错误的是A.结构是由用户自定义的一种数据类型B.结构中可设定若干个不同数据类型的成员C.结构中成员的数据类型可以是另一个已定义的结构D.在定义结构时,可以为成员设置默认值41.以下关于结构体的叙述中,错误的是。
A.结构体是一种可由用户构造的数据类型B.结构体中的成员可以具有不同的数据类型C.结构体中的成员不可以与结构体变量同名D.结构体中的成员可以是指向自身结构的指针类型42.说明一个结构体变量时,系统分配给它的内存是。
A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量43.设有以下说明语句:struct stu{ int a; float b; } stutype;则下面的叙述不正确的是。
A.struct是结构体类型的关键字B.struct stu是用户定义的结构体类型名C.stutype是用户定义的结构体类型名D.a 和b都是结构体成员名44.若有如下定义struct data{ int x,y;} test1={10,20}, test2;则以下赋值语句中错误的是。