C语言课程复习题-2013-2014-2.doc_第1页
C语言课程复习题-2013-2014-2.doc_第2页
C语言课程复习题-2013-2014-2.doc_第3页
C语言课程复习题-2013-2014-2.doc_第4页
C语言课程复习题-2013-2014-2.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第 35 页 共 35 页单选题1.给出以下定义:char x =abcdefg;char y =a,b,c,d,e,f,g;则正确的叙述为A) 数组x和数组y等价B) 数组x和数组y的长度相同C) 数组x的长度大于数组y的长度D) 数组x的长度小于数组y的长度2.设有数组定义: char array chinr,则数组 array所占的空间为A)4个字节B)5个字节C)6个字节D)7个字节3.合法的数组定义是A) int a=string; B) int a5=0,1,2,3,4,5;C) char s=string; D) char a=0,1,2,3,4,5;4. 以下程序的输出结果是( )main( )int k=17;printf(%d,%o,%x n,k,k,k); (A)17,021,0x11(B)17,17,17(C)17,0x11,021(D)17,21,115. 若有以下定义int x10,*pt=x;则对数组元素的正确引用是()。(A)*&x10 (B)*(x+3) (C)*(pt+10) (D)pt+36.下列描述中不正确的是A) 字符型数组中可以存放字符串B) 可以对字符型数组进行整体输入、输出C) 可以对整型数组进行整体输入、输出D) 不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值7. 下列程序的运行结果是( )Includestdio.hmain()int a2,b=5 ;printf(a=%d,b=%dn,a,c); (A)a2,b=5 (B) a=2,b=5(C)a=d,bd (D)a=d,bd8. 有以下程序,执行后输出的结果是( )main() int a=5,b=4,c=3,d=2;if(abc) printf(%dn,d);else if(c-1=d)=1) printf(%dn,d+1);else printf(%dn,d+2);(A) 2 (B) 3(C) 4 (D) 编译时有错,无结果9. 下面程序段的运行结果是()。 char *s=abcde; s+=2;printf(%d,s); (A)cde b)字符c c)字符c的地址 d)无确定的输出结果10. 有如下定义struct personchar name9; int age;strict 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);11. 执行语句:for(i=1;i+4;);后变量i的值是( )(A) 3(B) 4(C) 5(D) 不定12设有以下语句typedef struct S int g; char h; T;则下面叙述中正确的是()A)可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量13若有以下说明和定义,以下叙述正确的是_。typedef int *INTEGERINTEGER p,*q;A) p是int型变量B) p是基类型为int的指针变量C) q是基类型为int的指针变量D) 程序中可用INTEGER代替int类型名14变量a所占内存字节数是A)4B) 5C) 6D) 8union U char st4;int i;long l;srtuct A int c;union U u; a;15已知:char a20,b20 ;则以下正确的输入语句是_。 A)gets(“a,b”); B)scanf(%s%s,a,b); C)scanf(%s%s,&a,&b); D)gets(a);gets(b);16有以下程序,执行后输出结果是( )。main( ) char a=abcdefg,b10=abcdefg;printf(%d%dn,sizeof(a),sizeof(b);(A) 7 7 (B) 8 8 (C) 8 10(D) 10 1017. 若主调用函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是( )。(A) int 型(B) float 型(C) double 型(D)由系统当时的情况而定18下列不正确的转义字符是:A ) B) C) 074D) 019已知:int i=0,j=1,*p=&i,*q=&j;错误语句是_。 A)i=*&q B)i=*&j C)p=&*&iD) j=*p+;20有以下函数char fun(char *p) return p; 该函数的返回值是_。A) 无确切的值 B) 形参p中存放的地址值C) 一个临时存储单元的地址 D) 形参p自身的地址值21. C语言中用于结构化程序设计的三种基本结构是( )(A) 顺序结构、选择结构、循环结构 (B) if、switch、break(C) for、while、do-while (D) if、for、continue22. 在C程序中,可把整型数以二进制形式存放到文件中的函数是( )。(A)fprintf函数 (B)fread函数(C)fwrite函数 (D)fputc函数23以下叙述中正确的是_。A)构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C)main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行24已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_。A) scanf(%2d%2d%2d,&i,&j,&k);B) scanf(%d %d %d,&i,&j,&k);C) scanf(%d,%d,%d,&i,&j,&k);D) scanf(i=%d,j=%d,k=%d,&i,&j,&k);25. 有以下程序段,b中的值是()。int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;(A) 5 (B) 6 (C) 8(D) 926已知 struct int I;char c;float a;test ; 则sizeof(test)的值是 。A)4 B)5 C)6 D)727. 设fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为( )。(A)EOF (B)非0 值(C)0 (D)NULL28有以下程序,执行后输出结果是_。main( ) char *p10=abc,aabdfg,dcdbe,abbd,cd; printf(%dn,strlen(p4); A) 2 B) 3C) 4D) 529下列叙述中正确的是:A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数30. 设有如下说明typedef struct int n; char c; double x;STD;则以下选项中,能正确定义结构体数组并赋初值的语句是( )。STD tt2=1,A,62,2,B,75;STD tt2=1,A,62,2,75;struct tt2=1,A,2,Bstruct tt2=1,A,62.5,2,B,75.0;31. 有下列程序:void change (int k )k0=k5;main( ) int x10=1,2,3,4,5,6,7,8,9,10,n=0;while (n=4) change(&xn);n+ +;for(n=0;n5;n+ +) printf(%d,xn);printf(n);程序运行后输出的结果是( )。(A)6 7 8 9 10 (B)1 3 5 7 9(C)1 2 3 4 5 (D)6 2 3 4 532设有数组说明int a44; ,则不能等价表示的数组元素a33是_。A)*(a3+3)B)*(*(a+3)+3)C)*&a33D)(*(*a+3)+333在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置34. 有下列程序:#include main( ) char c1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar( ); c6=getchar( );putchar(c1);putchar(c2);printf(%c%cn,c5,c6);程序运行后,若从键盘输入(从第1 列开始)12345678则输出结果是( )。(A)1267 (B)1256(C)1278 (D)124535. 下面程序的输出是( )。int m=13;int fun2(int x, int y) int m=3; return(x*y-m); main() int a=7, b=5; printf(%dn,fun2(a,b)/m);(A) 1 (B) 2(C) 7 (D) 1036已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是_。A) 字符A B) 字符a C) 字符e D) 非法的常量37以下非法的赋值语句是_。A) n=(i=2,+i); B) j+; C) +(i+1); D) x=j0;38有如下程序,该程序段的输出结果是main0 int n=9;while(n6) n-;printf(%d,n);A) 987B) 876C) 8765D) 987639. 有下列程序:#includestdio.hvoid fun(int*a,int n)int t,i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj) t=ai;ai=aj;aj=t;main()int c10=1,2,3,4,5,6,7,8,9,0,i;fun(c+4,6);for(i=0;i10;i+) printf(%d,ci);printf(n);程序的运行结果是( )。(A)1,2,3,4,5,6,7,8,9,0, (B)0,9,8,7,6,5,1,2,3,4,(C)0,9,8,7,6,5,4,3,2,1, (D)1,2,3,4,9,8,7,6,5,0,40有以下程序段int k=0while(k=1)k+;while 循环执行的次数是A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次41. 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。划线处应填( )。#include #include main() char a=clanguage,t; int i,j,k; k=strlen(a); for(i=0;i=k-2;i+=2) for(j=i+2;jaj) t=ai;ai=aj;aj=t; puts(a); printf(n); A) k=k+1 B) k=k+2C) j+=1 D) j+=242若有以下定义和语句:char *s1=12345,*s2=1234; printf(%dn,strlen(strcpy(s1,s2);则输出结果是 A) 4B) 5C) 9D) 1043若有以下定义和语句: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则不能表示a数组元素的表达式是A) *pB) a10C) *aD) ap-a44C语言中形参的缺省存储类别是( )。(A)自动(auto)(B)静态(static)(C)寄存器(register)(D)外部(extern) 45有以下程序,执行后输出结果是main( ) char *p10=abc,aabdfg,dcdbe,abbd,cd;printf(%dn,strlen(p4); A) 2B) 3C) 4D) 546若有以下调用语句,则不正确的fun函数的首部是A) void fun( int m,int x ) B) void fun( int s, int h41)C) void fun( int p, int *s) D) void fun(int n, int a)main( )int a50, n;fun( n,&a9);47. 以下程序的输出结果是( )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) 6(C) 5(D) 448. 运行以下程序后,如果从键盘上输入65 14,则输出结果为( )main( )int m,n;scanf(%d%d,&m,&n);while(m!=n) while(mn) m-=n;while(nm) n-=m;printf(“m=%dn”,m);(A) m=3(B) m=2(C) m=1(D) m=049 以下说法中正确的是_。A) #define和printf都是C语句 B) #define是C语句,而printf不是C) printf是C语句,但#define不是 D) #define和printf都不是C语句50.若有以下定义和语句char c1=b,c2=e; printf(%d,%cn,c2-c1,c2-a+A); 则输出结果是_。A) 2,MB) 3,E C)2,ED) 输出项与对应的格式控制不一致,输出结果不确定51. 在下列选项中,不正确的赋值表达式是( )(A)a=b+c=1(B)n1=(n2=(n3=0)(C)k=i=j(D)+t52. 以下程序的输出结果是()。(A) 6 9 9(B) 6 6 9 (C) 6 15 15(D) 6 6 15int d=1;fun(int p)static int d=5;d+=p;printf(%d ,d);return(d);main( ) int a=3;printf(%d n,fun(a+fun(d);53. 表示关系x=y=z的c语言表达式为( )。(A) (X=Y)&(Y=Z)(B) (X=Y)AND(Y=Z)(C) (X=Y=Z)(D) (X=Y)&(Y=Z)54以下对C语言函数的描述中,正确的是_。A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B) C函数既可以嵌套定义又可以递归调用C) 函数必须有返回值,否则不能使用函数D) C程序中有调用关系的所有函数必须放在同一个源程序文件中55设有 “char s=Program , *p=s; ,则以下叙述中正确的是_。A) 数组s的内容与指针变量p中内容相同B) 数组s的长度与strlen(p)的值相同C) p5的值等于s5的值D) sizeof(s)等于sizeof(*p)56. 有以下程序main()unsigned char a,b,c;a=0x3; b=a|0x8; c=by-?x:y的值为A) 1 B) 2C) 3D) 458与语句while(!x)等价语句是_。A)while(x= =0) B)while(x!=0) C)while(x!=1) D)while(x)59已知:char a20,b20 ;则以下正确的输入语句是_。 A)gets(“a,b”); B)scanf(%s%s,a,b); C)scanf(%s%s,&a,&b); D)gets(a);gets(b);60已知:int i=0,j=1,*p=&i,*q=&j;错误语句是_。 A) i=*&q B) i=*&j C) p=&*&i D) j=*p+;61有以下程序,程序运行后的输出结果是( )。#include int f(int t,int n);main int a4=1,2,3,4,s;s=f(a,4); printf(%dn,s);int f(int t,int n) if(n0) return tn-1+f(t,n-1);else return 0;(A)4 (B)10 (C)14 (D)662下列程序执行后的输出结果是_。main()int a33,*p,i;p=&a00;for( i= 0 ; iincludestring.hmain()char x”STRING”;x0=0;x10;x20;printf(”d dn”,sizeof(x),strlen(x);程序运行后的输出结果是( )。(A)6 1(B)7 0(C)6 3(D)7 167.下列关于单目运算符+、-的叙述中正确的是A) 它们的运算对象可以是任何变量和 常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量68.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是for (i=5;i;i-)for(j=0;j=4;j+).A) 20B) 25C) 24D) 3069.若有以下定义: float x;int a,b;则正确的switch 语句是A) switch(x) B) switch(x) case .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); 70.以下程序输出的结果是main() char w 10=ABCD,EFGH,IJKL,MNOP,K;for (k=1;k3;k+)printf(%sn,&wkk);A) ABCDB) ABCDC) EFGD) FGHFGHEFG JK KLKL IJ OM填空题1. 若有定义语句char a,b; a=A+5-3; b=a+6-2;,则a和b的值分别为_67 和G 。2. 定义int n=8,a=15;a*=(n%=3);则执行后,变量n=2_,a=30_。3. 若有定义语句int a; a=(int)(double)(3/2)+0.5+(int)1.99*2);,则a的值_3_。4若有定义:int a=10,b=9,c=8;按顺序执行c=(a-=(b-5);c=(a%11)+(b=3);语句后,变量b中的值是_3_。5.若有定义:char c=010;,则变量C中包含的字符个数为_1_。6.在C语言中,实数有两种表示形式,即 float _和_ double _。7.若有定义语句int x=20;,则表达式0x20和0x&x20的值分别为1 和0 。8. C语言的输入输出操作是由 printf() 和 scanf()函数来实现的。9. 设有变量定义:int a=1,2,3,4,5,6,*p=a+2;试计算表达式*(p+2)的值是_5_。10设x和y均为int型变量,且x=1,y=2,则以下表达式的值为1.0。1.0+x/y11若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是 5.0,4,c=3。int b,c; float a;scanf(%f,%d,c=%d,&a,&b,&c);12. 用来存放字符数据的数组称为字符数组。13. C语言中用于结构程序设计的三种基本结构是顺序结构和选择结构和循环结构。14. 构成数组的各个元素必须具有相同的数据类型。15C程序是由函数_构成的,一个C程序中至少包含 main()。16设有以下变量定义,并已赋确定的值char w; int x; float y ; double z;则表达式:w*xzy所求得值的数据类型为double17若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是3 。c=(a-=(b-5);c=(a%11)+(b=3);18设y是int型变量,请写出判断y为奇数的关系表达(Y%2)= =1。19.已知字符A的ACSII码值为65,以下语句的输出结果是B 66char ch=B;printf(%c %dn,ch,ch);20array是一个一维整型数组,有10个元素,如何用赋值语句把39存入第一个元素: array0=39;_。21. C语言规定了以字符_”0”_作为字符串结束标志。若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen(”d1.fat”,”rb”);。22.若输入字符串:abcde,则以下while循环体将执行 0 次。While(ch=getchar()=e) printf(*);23.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10 。for(i=0,j=10;i=j;i+,j-)k=i+j;24指针变量的值是它所指向的变量的_地址_。25. 在函数之外定义的变量称为_全局_变量。26. fopen函数如果调用成功,返回相应文件的指针_,否则,返回_ NULL 。27. 对文件进行读写操作之前,必须先执行_打开_文件的操作,在读写操作结束之后,必须执行关闭文件的操作。28. 在C语言中,所谓读文件就是由文件向内存输入数据,而写文件 则是由内存向文件输出数据。29. 对结构体类型变量初始化时,初始化数据和结构体成员在类型、个数和顺序上必须保持一致。30. 从用户使用的角度看,C语言中的函数可以分为_库函数和_用户自定义函数_两大类。31.若有程序,要求给i赋10,给j赋20,则应该从键盘输入i=10,j=20。main() int i,j;scanf(i=%d,j=%d,&i,&j);printf(i=%d,j=%dn ,i,j);32.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是P5或*(p+5)。int w10=23,54,10,33,47,98,72,80,61, *p=w;33. 所谓_地址传递_就是在调用函数时,将实参变量的地址传递给对应的形参,使其指向同样的存储区域。34设int占2个字节,char占1个字节,若有以下定义和语句,则a占用字节数是_5_,而b占用字节数是_2_。struct int day; char mouth; int year;a;*b;b=&a;35.有以下定义和语句,则sizeof(a)的值是10,而sizeof(a.share)的值是4 struct date int day;int month;int year;unionint share1float share2;share;a;程序填空题1.函数pi的功能是根据以下近似公式求值: (*)/6=1+1/(2*2)+1/(3*3)+.+1/(n*n)现在请你在下面的函数中填空,完成求的功能。#include math.hdouble pi(long n) double s=0.0; long i;for(i=1;i=n;i+)s=s+【1.0/(i*i) 】 ;return(sqrt(6*s);2以下函数的功能是计算s=1+1/2!+1/3!+1/n!,请填空。double fun(int n)double s=0.0,fac=1.0; int i;for(i=1;i=n;i+)fac=fac【*(1.0/i)】;s=s+fac;return s;3.以下程序的功能是调用函数fun计算:m=1-2+3-4+9-10,并输出结果。请填空。int fun( int n) int m=0,f=1,i;for(i=1; ib ? a:b); 5.以下函数的功能是:求x的y次方,请填空。double fun( double x, int y) int i;double z;for(i=1, z=x; iwp)【p+ 或 +p 或 p=p+1 或p+=1或p=1+p; 】for(i=*n;ip;i-)wi= 【wi-1; 或 *(w+i-1) ;】 wp=x;+ *n;7.以下程序的功能是计算1-100之间是7的倍数的数值之和。请填空。main()int i,sum;【sum=0】;i=1;while (i=100)if(i%7【=】0) sum+=i; 【i+】;printf(“sum=%dn”,sum);8.以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。#includestdio.hmain() char str81,*sptr;int i;for(i=0;i80;i+) stri=getchar();if(stri=n) break;stri=【0 或0】;sptr=str;while(*sptr) putchar(*sptr【+】);9.以下fun函数的功能是:累加数组元素的值。n为数组中元素的个数。累加的和值放入x所指的存储单元中。请填空。fun(int b ,int n,int *x) int k, r=0;for(k=0;k=0&si=0.0&n1000) sum+【=a】; xn=【a】;n+; scanf(%f,&A);ave=【sum/n】 ;printf(Output:n);printf(ave=%fn,ave);for (i=0; n;i+)if 【xiave】 printf (%fn,xi);16.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。#include main() char str100,str2100,c;int i,s;printf(n input string 1:n); gest(str1);printf(n input string 2:n); gest(str2);i=0;while(strli=str2i&(str1i!=【0或0】)i+;s=【strli-str2i】;printf(%dn,s);17.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。#include#includemain() char a=clanguage,t;int i,j,k;k=strlen(a);for(i=0;i=k-2;i+=2)for(j=i+2;jaj】) t=ai; ai=aj; aj=t;puts(a);printf(n);18.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。include Stdiohmain() int a, b, c, i;a=c=0;for(i=0;i=10; i+=2 ) a+=i;【b=i+1或b=1+i】;c+=b;printf(偶数之和=dn”,a);printf(奇数之和=dn”,c-11);19.下面程序的功能是:输出 100以内能被 3整除且个位数为 6的所有整数,请填空。includestdiohmain() int i, j;for(i=0;【i=9或i=i或10i】; i) j=i *106;if (【j%3!=0或j%3】) continue;printf(%d, j);20以下程序的功能是产生一个MN的随机数矩阵(数值范围在1100之间),找出其中的最大值元素。请填空。main( )int i,j,row=0,col=0,max;int a34;printf(建立随机数数组n ); for(i=0;i3;i+) for(j=0;j4;j+) aij=rand( )%100;max=【a00】; for(i=0;i3;i+) for(j=0;jmax) max=aij; row=【i】; col=【j】; printf(随机数矩阵中最大值元素 a%d%d=%dn,row,col,max); 阅读程序1.以下程序的输出结果是_。main() int a=0a+=(a=8);printf(%dn,a);2.下列程序的运行结果是_。 fun(int t ,int n) int i,m;if(n= =1)return t0;elseif(n=2)m=fun(t,n-1); return m;main( ) int a =11,4,6,3,8,2,3,5,9,2;printf(%dn,fun(a,10);3.以下程序的输出结果是_。main() int

温馨提示

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

评论

0/150

提交评论