c语言复习试题.doc

上传人:s****u 文档编号:12811956 上传时间:2020-05-26 格式:DOC 页数:43 大小:116KB
返回 下载 相关 举报
c语言复习试题.doc_第1页
第1页 / 共43页
c语言复习试题.doc_第2页
第2页 / 共43页
c语言复习试题.doc_第3页
第3页 / 共43页
点击查看更多>>
资源描述
C语言程序设计试题库一、选择题10、以下选项中不合法的用户标识符是 ( )在C的用户标识符命名规则中 标识符是要以下划线或字母开头的,标识符中只允许出现字母 下划线,数字,不允许有小数点。而且还区分大小写。故Main PRINTF不是关键字可以作为用户标识符。A、_123 B、 printf C、 A$ D、 Dim11、c语言中运算对象必须是整型的运算符是( )A、% B、 / C、 ! D、 * 13、若变量已正确定义并赋值,符合C语言语法的表达式是( )A、 a=a+7; B、a=7+b+c,a+ C、 int(12.3%4) D、 a=a+7=c+b19、 若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为( )。A、1.4 B、1 C、2.0 D、220、char型数据在内存中的存储形式是( )A、补码 B、反码 C、原码 D、ASCII码(规定的,虽然还是以二进制存)23、 若变量a是int类型,并执行了语句:a=A+1.6;则正确的叙述是( )。A、a的值是字符C B、a的值是浮点型 C、不允许字符型和浮点型相加 D、a的值是字符A的ASCII值加上124.、以下选项中合法的字符常量是( )。 A、“B” B、 010 C、68 D、D27、以下程序的输出结果是( )A、0 B、1 C、3 D、不确定的值main ()int x=10,y=3;printf(“%dn”,y=x/y);29、若变量已正确定义为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);32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是( )A、float B、 char C、int D、 double39、下列运算符中优先级最高的运算符是( )A、! B、% C、-= D、&40、下列运算符中优先级最低运算符是( )A、| B、!= C、= D、+41、为表示关系 xyz, 应使用的C语言表达式是( )A、 (x=y)&(y=z) B、(x=y)AND(y=z)C、 (x=y=z) D、(x=y)&(y=z)43、 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&(n=cd)运算后,n的值为( )。 A、0 B、1 C、2 D、345、以下程序的输出是( )A、0 B、1 C、2 D、3main() int a=2,b=-1,c=2; if(ba) ;if(b0) c=0;printf(“%dn”,c); 46、设a,b 和c 都是int 型变量,且 a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( )A、 a&b B、 a=b C、 a|b+c&b-c D、 !(ab)&!c|1)47、以下程序的输出是( )A、0 B、1 C、2 D、3main() int a=2,b=-1,c=2; if(ab)if(by) z=x;x=y;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=2050、以下程序的运行结果是( )main( )int m=5;if(m+5)printf(“%dn”,m);else printf(“%dn”,m-); A、4 B、5 C、6 D、751、若执行以下程序时从键盘上输入3和4,则输出结果是( )A、14 B、16 C、18 D、20 main() int a,b,s;scanf(“%d%d”,&a,&b);s=a;if(ab) s=b;s*=s;printf(“%dn”,s);52、运行以下程序,输出( )A、* B、&C、#& D、有语法错误不能通过编译 main() int k=-3;if(k=0)printf(“*n”);else printf(“&n”);53、以下程序的输出结果是 ( ) main() int x=2,y=-1,z=2; if(xy) if(y0) z=0; else z=z+1; printf(“%dn”,z); A、3 B、2 C、1 D、057、以下程序段,int k=10;while(k=0)k=k+1;则下面描述中正确的是( )。A、while循环执行10次 B、循环是无限循环C、循环体语句一次也不执行 D、循环体语句执行一次58. 以下程序中,while循环的循环次数是( )。 main() int i=0; while(i10) if(i1) break; i+; A、1 B、10 C、6 D、死循环,不能确定次数60、若执行以下程序时从键盘上输入9,则输出结果是 ( ) A、 11 B、 10 C、 9 D、 8 main() int n; scanf(%d,&n); if(n+10) printf(%dn,n); else printf(%dn,n-); 62、对于下面,两个循环语句,( )是正确的描述。 while(1) ; for( ; ; ) ;A、都是无限循环 B、是无限循环,错误C、循环一次,错误 D、皆错误63、语句while(!E);中的表达式!E等价于( ) A、E=0 B、E!=1 C、E!=0 D、E=164、下面程序段运行结果是( ) x=y=0;while(x15) y+,x=x+(+y); pirntf(“%d,%d”,y,x); A、20,7 B、6,12 C、20,8 D、8,2065、设有以下程序段 int x=0,s=0;while(! x!=0) s+=+x;printf(“%d”,s); 则( ) A、运行程序段后输出0 B、运行程序段后输出1(a!=0) C、程序段中的控制表达式是非法的 D、程序段执行无限次66、下面程序段的运行结果是( ) int n=0; while(n+=2); printf(“%d”,n); A、2 B、3 C、4 D、有语法错误67、下面程序的运行结果是( ) #include main( ) int num=0; while(num=2) num+;printf(“%d ”,num); A、1 B、1 2 C、1 2 3 D、1 2 3 468、c语言中while和do-while循环的主要区别是( )71、若i为整型变量,则以下循环执行次数是( ) for(i=2;i=0;) printf(“%d”,i-); A、无限次 B、0次 C、1次 D、2次72、下面程序的运行结果是( )#include main( ) int y=10; do y-; while(-y); printf(“%dn”,y-); A、-1 B、1 C、8 D、074、下面程序段的运行结果是( )for(y=1;y10;) y=(x=3*y,x+1),x-1); printf(“x=%d,y=%d”,x,y); A、x=27,y=27 B、x=12,y=13 C、x=15,y=14 D、x=y=2776、以下程序段输出结果是( )A、 9 B、1 C、11 D、10int k, j, s;for (k=2;k6;k+,k+) s=1; for(j=k; j7) n-; printf(“%dn”,n); 81、以下程序的输出结果是 ( )A、741 B、8 5 2 C、963 D、875421main() int y=10;for(; y0;y-) if(y%3=0) printf (“%d”,-y) ;continue; 86、C语言中,字符(char)型数据在微机内存中的存储形式是( ) A、 反码 B、 补码 C、 EBCDIC码 D、 ASCII码87、设有定义语句char a=72;,则变量a( ) A、 包含1个字符 B、 包含2个字符 C、 包含3个字符 D、 包含4个字符 88、C语言中不合法的字符常量是( ) A、xff(扩展码) B、65(八进制) C、& D、028(八进制,个位不能是8) 提示:十进制不用,直接赋值 89、C语言中不合法的字符串常量是( ) A、“121” B、y= C、 “nn” D、“ABCDx6d”90、判断char型变量c是否为大写字母的最简单且正确的表达式是:( ) A、A=c=A)&(c=Z) C、(A=c) D、 ( c=A)&(c=Z)91、以下程序的输出结果是( )A、因输出格式不合法,无正确输出 B、65,90C、A,Y D、65,89main()char c1=A,c2=Y;printf(“%d,%dn”,c1,c2);98、以下程序的输出结果是( )A、因变量无定义输出不定值 B、0 C、-1 D、1#include “stdio.h”main() printf(“%dn”,NULL) ;99、以下程序的输出结果是A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7void sub(int x, int y, int *z) *z=y-x;main() int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%dn”,a,b,c); 103、在c语言中,引用数组元素时,其数组下标的数据类型允许是( ) A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式 104、以下对一维整型数组a的正确说明是( ) A、int a(10); B、int n;scanf(“%d”,&n);int an; C、int n=10,an; D、#define SIZE 10 int SIZE; 105、以下能对一维数组a进行正确初始化的语句是( )。A、int a10=(0,0,0,0,0); B、int a 10=; C、int a=10,12,56; D、int a=10*1;106、以下对二维数组a的正确说明是( )。A、int a3; B、float a (3,4); C、double a14; D、float a(3)(4);107、若有说明:int a34;则对a数组元素的正确引用是 ( ) 。A、a24 B、a1,3 C、a1+10 D、a(2)(1)108、若有说明:int a34;则对a数组元素的非法引用是( )。A、a02*1 B、a13 C、a4-20 D、a04109、以下能对二维数组a进行正确初始化的语句是( )。A、int a2=1,0,1,5,2,3; B、int a3=1,2,3,4,5,6;C、int a24=1,2,3,4,56; D、int a3=1,0,1,1,1;111、 若有说明:int a34=0;则下面正确的叙述是( )。A、只有元素a00可得到初值0 B、数组a中每个元素均可得到初值0C、数组a中各元素都可得到初值,但不一定为0 D、此说明语句不正确113、若二维数组a有m列,则计算任一元素aij在数组中位置的公式为( )。(假设a00位于数组的第一个位置上。)A、i*m+j B、j*m+I C、i*m+j-1 D、i*m+j+1114、对以下说明语句的正确理解是( )。int a10=6,7,8,9,10;A、将5个初值依次赋给a1至a5 B、将5个初值依次赋给a0至a4 C、将5个初值依次赋给a6至a10 D、因为数组长度与初值的个数不相同,所以此语句不正确115、若有说明:int a3=1,2,3,4,5,6,7;则a数组第一维的大小是( )。A、2 B、3 C、4 D、无确定值116、定义如下变量和数组:int k;int a33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是( )。for (k=0;ks2) B、if(strcmp(s1,s2) C、if(srtcmp(s2,s1)0) D、if(strcmp(s1,s2)0)128、以下正确的函数定义形式是( )。A、double fun(int x,int y) B、double fun(int x;int y) C、double fun(int x,int y); D、double fun(int x,y);130、以下正确的说法是( )。在C语言中A、实参和与其对应的形参各占用独立的存储单元 B、实参和与其对应的形参共占用一个存储单元 C、只有当实参和与其对应的形参同名时才共占用存储单元 D、形参是虚拟的,不占用存储单元131、以下不正确的说法是( )。C语言规定A、实参可以是常量、变量或表达式 B、形参可以是常量、变量或表达式 C、实参可以为任意类型 D、形参应与其对应的实参类型一致132、以下正确的说法是( )。A、定义函数时,形参的类型说明可以放在函数体内 B、return后边的值不能为表达式 C、如果函数值的类型与返回值类型不一致,以函数值类型为准 D、如果形参与实参的类型不一致,以实参类型为准133、 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )。A、float型 B、int型 C、long型 D、double型134、 C语言规定,函数返回值的类型是由( )。A、return语句中的表达式类型所决定 B、调用该函数时的主调函数类型所决定 C、调用该函数时系统临时决定 D、在定义该函数时所指定的函数类型所决定135、下面函数调用语句含有实参的个数为( )。Func(exp1,exp2),(exp3,exp4,exp5); (只要不在“”里面就是逗号运算符)A、1 B、2 C、4 D、5138、若用数组名作为函数调用的实参,传递给形参的是( )。A、数组的首地址 B、数组第一个元素的值 C、数组中全部元素的值 D、数组元素的个数143、 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)144、 以下程序的运行结果是( ) sub(int x,int y,int *z)*z=y-x; main() int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(“%4d,%4d,%4dn”,a,b,c); A、5, 2, 3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7146、 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( ) main() int *p,*q,a,b; p=&a;printf(“input a:”); scanf(“%d”,*p); A、*p表示的是指针变量p的地址 B、*p表示的是变量a的值,而不是变量a的地址 C、*p表示的是指针变量p的值 D、*p只能用来说明p是一个指针变量 148、 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( ) A、p1=&m;p2=&p1; B、p1=&m;p2=&n;*p1=*p2; C、p1=&m;p2=p1; D、p1=&m;*p2=*p1;149、 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( ) A、c=*p1+*p2; B、p2=c; C、p1=p2; D、c=*p1*(*p2)150、 下面判断正确的是( )A、char *a=”china”;等价于char *a;*a=”china”;B、char str10=“china”;等价于char str10;str=”china”;C、char *a=”china”;等价于char *s;s=”china”;D、char c4=”abc”,d4=”abc”;等价于char c4=d4=”abc”;151、 下面能正确进行的字符串赋值操作的是( ) A、char s5=“ABCDE”;B、char s5=A,B,C,D,E; C、char *s;s=”ABCDE”; (指针特殊的字符串赋值) D、char *s;scanf(“%s”,s);(s没有初始化,是悬空的,会导致scanf崩溃)152、 若有以下定义,则对a数组元素的正确因用是( ) int a5,*p=a;A、*&a5 B、a+2 C、*(p+5) D、*(a+2)153、 若有定义:int a23;则对a数组的第i行第j列元素值得正确引用为( ) A、*(*(a+i)+j) B、(a+i)j C、*(a+i+j) D、*(a+i)+j154、 若有以下定义和语句,则对a数组元素地址的正确引用为( ) int a23,(*p)3; p=a;A、*(p+2) B、p2 C、p1+1 D、(p+1)+2158、库函数strcpy用以复制字符串。若有以下定义和语句:char str1=”string”,str28,*str3,*str4=”string”;则对库函数strcpy的不正确调用是( )A、 strcpy(str1,”HELLO1”); B、 strcpy(str2,”HELLO2”);C、 strcpy(str3,”HEELO3”); D、 strcpy(str4,”HELLO4”);159、若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中0=i=9,则对a数组元素的引用不正确的是( )A、ap-a B、 *(&ai) C、pi D、*(*(a+i)160、以下程序段给数组所有元素输入数据,应在下划线处填入的是A、a+(i+) B、 &ai+1 C、a+i D、&a+i main()int a10, i=0;while(i10)scanf(“%d”,_):161、以下程序的输出结果是( )A、3 B、4 C、1 D、2main() int a10=1,2,3,4,5,6,7,8,9,10, *p=a;printf(“%dn”,*(p+2) );164、以下程序的输出结果是( )A、 6 B、8 C、 4 D、2main() int a=2,4,6,8, *p=a, i;for(i=0; i4; i+) ai=*p+;printf(“%dn”,a2);174、以下程序的输出结果是( )A、 1,5,9, B、1,4,7, C、3,5,7, D、3,6,9,main()int i,x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d,xi2-i);176、以下能正确进行字符串赋值、赋初值的语句组是( )A、 char s5=a,e,i,o,u;B、 char *s; s=”good!”;C、 char s5=”good!”;D、 char s5; s=”good”;177、以下程序段的输出结果是( )char str =”ABCD”,*p=str;printf(“%dn”,*(p+4);(0为零,n为10)A、 68 B、 0 C、 字符D的地址 D、不确定的值178、以下程序段的输出结果是( )printf(“%dn”,strlen(“ATSn0121”);(后面加的跟在一起)A、 11 B、 10 C、 9 D、 8 181、以下程序的输出结果是( )A、ABCD B、 AC、 DD、 ABCD BCD B C ABCCD C B ABD D A Amain() char s =”ABCD”, *p;for(p=s; pb)&n运算后,n的值为( )。 A)0 B)1 C)2 D)3215、putchar函数可以向终端输出一个()。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 219、已知ch是字符型变量,下面不正确的赋值语句是( )。 A) ch= a+b; B) ch=0; C) ch=7+9; D) ch=5+9; 223、下列关于单目运算符+、-的叙述中正确的是( ) A) 它们的运算对象可以是任何变量和常量 B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量 225、以下程序的输出结果是 ( ) #include main() int i=010 , j = 10; printf(%d,%dn,+i , j-); A) 11,10 B) 9,10 C) 010,9 D) 10,9 226、已知在ASCII 代码中,字母A的序号为65,以下程序的输出的结果是( ) 。 # include main() char c1=A, c2=C; printf(%d,%cn,c1,c2); A) 因输出格式不合法,输出错误信息 B)65,C C)A,Y D)65,67 229、以下程序的输出结果是( ) 。 230、已知字母A的ASCII 码为十进制的65,下面程序的输出是( )。 main() char ch1,ch2; ch1=B+4-3; ch2=B+2-0; printf(%d,%cn,ch1,ch2);A) 67,D B) C,C C) C,D D) 不确定的值 233、逻辑运算符两侧运算对象是( )。 A) 只能是0和1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据 234、判断char型变量ch是否为大写字母的正确表达式是( )。 A) A=ch=A)&(ch= A)&(ch=Z) D) (A= ch) 235、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。 A) A%2=1 B) !(A%2=0) C) !(A%2) D) A%2 236、 设有:int a=10,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&(n=cd)后n的值为 ( )。 A) 1 B) 2 C) 3 D) 0 238、已知int x=100,y=20,z=30;以下语句执行后x,y,z的值是( )。 if(xy) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=100, z=100 D) x=20, y=30, z=20 239、以下程序的运行结果是( )。 main() int m=6; if(m+5) printf( “%dn”,m); else ; printf( “%dn”,m-); A) 4 B) 5 C) 6 D) 7 241、以下关于运算符优先顺序的描述中正确的是( )。(逻辑运算符不包括!) A) 关系运算符算术运算符赋值运算符逻辑运算符 B) 逻辑运算符关系运算符算术运算符赋值运算符 C) 赋值运算符逻辑运算符关系运算符算术运算符 D) 算术运算符关系运算符赋值运算符逻辑运算符 242、语句 while(!E); 中的条件 !E 等价于( )。 A)E = = 0 B)E!=1 C)E!=0 D) E 245、若x,y,z的初值均为1,则执行表达式w =+x | + y & + z后,x,y,z的值分别为( )。 (或运算遇到大于等于0就返回1.不再向后计算。)A) x=1, y=1, z=2 B) x=2, y=2, z=2 C) x=1, y=2, z=1 D) x=2, y=1, z=1249、对以下程序段描述正确的是( )。250、若有如下语句 int x=-3; doprintf(%dn,x-=2);while(!(-x); 则上面程序段输出的是( )。 A) -5 B) 1和-2 C ) 3和0 D) 是死循环 二、程序填空题或写结果1. 以下程序的运行结果是 main() int a=100; printf(“%d,”,+a);printf(“%d,”,a+);printf(“%dn”,a);2. 下面程序的运行结果是_。#includemain()int a,s,n,count;a=2;s=0;n=1;count=1;while(count=7) n=n*a;s=s+n;+count;printf(“s=%d”,s);11. 以下程序的输出结果是 main() int x=10,y=9; int a,b,c; a=(-x=y+)?-x:+y; b=x+;c=y; printf(“%d,%d,%d”,a,b,c); 12. 以下程序输入3时,输出结果是 main() int k;scanf(“%d”,&k); switch(k) case 1:printf(“%d”,k+); case 2:printf(“%d”,k+); case 3:printf(“%d”,k+); case 4:printf(“%d”,k+); break; default :printf(“FULL!”); printf(“n”); 15. 以下程序的运行结果是_。main()int x,y,z;x=1;y=2;z=3;x=y-=x|x=y!=z;printf(“%d,%d”,x,y);18. 当运行以下程序时,从键盘键入China#回车,则下面程序的运行结果是 #include “stdio.h” main() int v1=0,v2=0;char ch; while (ch=getchar( )!=#)switch(ch) case a:case h:default :v1+ ;case 0:v2+ ; printf(“%d,%dn”,v1,v2); 23. 以下程序的运行结果是_。main()if(2*2= =52*2= =4)printf(“T”);elseprintf(“F”);24. 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。int n=0,c;c=getchar();while( c!=n )if(_) n+;c=getchar(); 27. 以下程序是输出100-200之间的全部素数,请填空。#includemain()int m,k,i; for(m=101;m=200;m=m+2) k=sqrt(m); for(i=2;i=k+1) printf(“%d ”,m); 28. 以下程序是输出100以内能被3整除并且个位数为6的所有整数,请填空。#includemain()int j,i; for(i=0; i=9;i+) j=i*10+6; if( ) continue; printf(“%d ”,j); 29. 以下程序是输出100以内能被3整除的数,请填空。#includemain()int i; for(i=100; i=200;i+) if( i%3!=0 ) ; printf(“%d ”,i); 33. 下面程序的功能是从键盘输入10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印”not exit”。请填空。#include main()int i,a;for(i=1;i=10;i+) scanf(“%d”,&a);if( a%7= =0 ) printf(“%d”,a) ; ; if( ) printf(“not existn”); 36. 下面程序的运行结果是_ _。#include main()int i,x,y; i=x=y=0; do +i;if(i%2!=0) x=x+i;i+; y=y+i+; while(i=7) ;printf(“x=%d,y=%dn ”,x,y); 38. 下面程序用来输出如下图案,请填空。* * * * * * * * * * * * * main() int i,j; for(i=1; ;i+) for(j=1;j=20-4*i;j+) printf(“ ”); for(j=1; ;j+) printf(“ %4c”,*); printf(“n”); 41. 以下程序的功能是输入10个整数,求出其中的正数和。请填空。main() int i; float sum,a; for(sum=0,i=1;i0) ; printf(“sum=%f”,sum);42. 以下程序的功能是从键盘输入n个数,当输入值为负数时结束输入,求这n个数的平均数。请填空。main() int n; float sum,a; for(sum=0,a=0;a=0;)scanf(“%f”,&a);if(a0) break; else sum=sum+a; ; printf(“这%d个数的平均值为:%f ”,n,sum/n); 44. 以下程序的输出结果是 void fun(int a,int b) a=100;b=200; main( ) int a=5,b=7;fun(a,b);printf(“%d,%dn”,a,b);46. 以下程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请填空 #include main() int n,count,max,t;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!