C语言复习题.doc_第1页
C语言复习题.doc_第2页
C语言复习题.doc_第3页
C语言复习题.doc_第4页
C语言复习题.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

模拟题一一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的,将正确选项前的字母写在相应横线上。1以下叙述中错误的是 (易)(A)使用三种基本结构构成的程序只能解决简单问题 (B)结构化程序由顺序、分支、循环三种基本结构组成(C)c语言是一种结构化程序设计语言 (D)结构化程序设计提倡模块化的设计方法2以下选项中,能用作数据常量的是 (易)(A) 115L (B)0118 (C)1.5e1.5 (D) o123 3设有定义:int x=2;,以下表达式中,值不为6的是 (中) (A)2*x, x+=2 (B)x+, 2*x (C)x*=(1+x) (D)x*=x+1 4有以下程序: #include main( ) int x, y, z;x=y=1;z=x+, y+, +y;printf(“%d, %d, %dn”, x, y, z);程序运行后的输出结果是 (中) (A)2, 3, 3 (B)2, 3, 2 (C)2, 3, 1 (D)2, 2, 1 5有以下程序: #include main( ) char c1, c2;c1=A+8-4;c2=A+8-5;printf(“%c, %d n”, c1, c2); 已知字母A的ASCII码为65,程序运行后的输出结果是 (中)(A)E, 68 (B)D, 69 (C)E, D (D)输出无定值 6以下程序,运行后的输出结果是 (易) #include main( ) int x=1, a=0, b=0;switch(x) case 0: b+; case 1: a+;case 2: a+; b+;printf(“a=%d, b=%d n”, a, b);(A)a=2, b=1 (B)a=1, b=1 (C)a=1, b=0 (D)a=2, b=27有以下程序,运行后的输出结果是 (易) #include main( ) int n=10;while( n7 ) n- -; printf(“%dn”,n);printf(“a=%d, b=%d n”, a, b);( A ) 10 (B)9 (C)10 (D)9 9 8 9 8 8 7 8 7 7 68在一个C源程序文件中所定义的全局变量,其作用域为 (易)(A)由具体定义位置和extern说明来决定范围(B)所在程序的全部范围(C)所在函数的全部范围(D)所在文件的全部范围9若有如下定义: #define X(n) n+1; #define Y(m) m+2; 则printf(“%dn”,X(2)*Y(3);的输出结果是 (中)(A)6 (B)7 (C)8 (D)1510以下不能正确进行字符串赋值的语句组是 (中)(A)char s5=a,e,i,o,u;(B)char *s; s=”good”;(C)char s 5=”good”;(D)char s5; s=”good”;11有以下程序:#include main( ) int i , x3 3=1,2,3,4,5,6,7,8,9;for( i=0; i3; i+ ) printf( ”%d,”, x i 2-i );程序的输出结果是 (易)(A)1, 5, 9, (B)1, 4, 7, (C)3, 5, 7, (D)3, 6, 9, 12以下程序的输出结果是 (难)#includeint fun( int a, int b, int c ) c=a*b; main( ) int c ;fun( 2, 3, c ); printf( ”%dn”, c );(A) 0 (B)1 (C)6 (D)无定值13若已有定义:int a5=10, 20, 30, 40, 50, *p=&a1; 则执行语句*p+; 后,*p的值是 (难) (A)20 (B)30 (C)21 (D)3114当定义一个结构体变量时,系统分配给它的内存是 (易)(A)各成员所需内存总和(B)成员中占内存容量最大者所需的容量(C)结构体中第一个成员所需内存量(D)结构体中最后一个成员所需内存量15有定义“int ax5; ”,对ax数组元素错误的引用是 (易) (A) ax0 (B)ax1+2 (C)ax5 (D)ax4二填空题:请将正确答案填写在相应横线上。本大题共15个空,每空2分,共30分。1以下程序的功能是:输入一个英文字符,判断它是否为大写字母,如果是,将它转换为小写字母输出,否则,直接输出。请将程序补充完整。(中)#include main()char ch; scanf(“%c”, &ch); ch=(ch=A&ch=Z) ? _: ch ;printf(“%c”, ch);2以下函数fmax返回数组arr中最大元素的下标,数组中元素的个数由x传入,请将程序补充完整。(中)fmax(int arr, int x)int max, q;for(q=1,max=0;qarrmax) _;return max;3试写出的C语言表达式_。(中)4下列给定程序中,函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据为:1,2,3,4,5,6,7,8,9,则逆置后依次为9,8,7,6,5,4,3,2,1。形参n给出数组中数据的个数。请将程序补充完整。(中)# includevoid fun(int a , int n) int i , t;for(i=0; i_; i+) t=ai; ai=an-1-_; _=t; main( ) int b9=1, 2, 3, 4, 5, 6, 7, 8, 9, i; fun(b, 9); printf(“The data after inverting: n”); for(i=0; i9; i+) printf(“%4d”, bi ); printf(“n”);5执行语句“ for(s=0, i=1 ; i=10 ; i=i+3) s+=i; ”后,变量 s 、i 的当前值是_、_。(中)6求s=1+2+3+.+100 (易) main( ) int i,s=0; i=1; do s=s+i; i+; while(_); prntf(%d,s); 7下列程序段的输出结果是_(难)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); 8下面程序可求出矩阵a的主对角线上的元素之和,请填空 (中) main( ) int a33= 1,2,3,4,5,6,7,8,9 , sum=0, i, j; for( i=0; i3; i+) for( j=0; j3; j+) if(_) sum=sum +_;9以下程序运行后的输出结果是_。(难) #include #include main( ) char s20=”hello world!”, *sp=s; sp=sp+2; puts(sp); 10请写出与以下表达式等价的表达式:(A)_ (B)_ (中) (A) !(x0) (B) ! 0三判断题:本大题共10个小题,每小题1分,共10分。1scanf不是C语言的关键字。( )(中)2在C程序中无论是整数还是实数,都能准确无误的表示。( )(中)3条件运算符是C语言中唯一的三目运算符。( )(易)4C语言中定义的函数必须要有返回值。( )(易)5break语句只能用于switch语句中。( )(易)6C源程序中能表示的数制有:十六进制、八进制、十进制、二进制。( )(中)7在C语言中,预处理命令行都以“#”开头。( )(易)8可以给指针变量赋一个整数作为地址值。( )(易)9逻辑运算符两侧的运算对象可以是任意合法的表达式。( )(中)10若有定义语句:double a, *p=&a; 则定义语句中的*是一个间址运算符。( )(易)模拟题一参考答案一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的,将正确选项前的字母写在相应横线上。1A 2A 3A 4C 5A 6A 7B 8A 9B 10D 11C 12D 13B 14A 15C 二填空题:请将正确答案填写在相应横线上。本大题共15个空,每空2分,共30分。1ch+322max=q3(x*x*x+sqrt(y)/abs(z) 4n/2 i an-1-i522 136i=10072,1,4,38i=j aii 或 ajj 或 aij 或 aji9llo world!10x (D)_isw 2有以下程序 【易】#include void main() int i=10,j=1; printf(%d,%dn,i-, +j); 执行后输出的结果是 。(A)9,2 (B) 10,2 (C) 9,1 (D)10,1 3. 设变量定义为“int a, b;”,执行下列语句时,输入_,则a和b的值都是10。【易】scanf(a=%d, b=%d,&a, &b);(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=104有以下程序段【易】int a, b, c;a=10; b=50; c=30;if (ab) a=b;b=c; c=a;printf(a=%d b=%d c=%dn”, a, b, c);程序的输出结果是 。(A)a=10 b=50 c=10 (B)a=10 b=50 c=30 (C)a=10 b=30 c=10 (D)a=50 b=30 c=505若k为整型,则while循环执行 次。【易】 k=5; while(k=0) printf(“%d”,k); k-; printf(“n”);(A)10 (B)9 (C)0 (D)16有以下程序【易】#include void 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;case 3: a+;b+;printf(a=%d,b=%dn,a,b);程序的运行结果是 。(A)a=1, b=0 (B)a=2, b=2 (C)a=1, b=1 (D)a=2, b=17数组定义为 int a32=1, 2, 3, 4, 5, 6,数组元素 的值为6。【易】 (A)a32 (B)a21 (C)a12 (D)a238以下能正确定义数组并正确赋初值的语句是 。 【易】(A) int N=5,bNN; (B) int a12=1,3; (C)int c2=1,2,3,4; (D) int d32=1,2,34; 9若有定义语句:char s10=123456700;,则strlen(s)的值是 。【易】(A)7 (B)8 (C)9 (D)1010下列程序的输出结果是 。【中】#include fun(int a, int b, int c) c =a*b; void main( ) int c; fun(2,3,c); printf(”%dn”,c);(A)0 (B)1 (C)6 (D)无法确定11设变量定义为“int a4;”,则表达式_不符合C语言语法。【中】(A)*a (B)a0 (C)a (D)a+12设变量定义为“int x, *p=&x;”,则&*p相当于 。【中】(A)p (B)*p (C)x (D)*&x13有以下程序【中】#includevoid main() int i, j;for(i=3; i=l; i-) for(j=1; jname (B)stu2.age (C)(*p).name (D)p-name二判断题:本大题共10个小题,每小题1分,共10分。【易】1 printf(“n”);实现在输出时进行换行。 ( )2若已定义int a=2,b=3;则a&b的值为1。 ( )3 a是正确的字符常量。 ( )4 在c语言中,函数返回值的类型最终取决于return语句中表达式值的类型。( )5已定义int n=6;则具有6个元素的一维数组可定义为float an;。 ( ) 6用scanf(%7.2f,&a);输入时,整个数据占7位,小数部分占2位。 ( )7当if语句嵌套时,else总和前面与其具有相同缩进位置的if配对。 ( )8 C程序总是从main函数开始执行,无论main函数的位置如何。 ( )9数组定义为 int a1111,则数组a有22个数组元素。 ( )10结构体类型只有一种。 ( )三填空题:本大题共15个小题,每空2分,共30分。1设x的值为10,n的值为5,则表达式x%=(n-=3)运算后,x的值为 。【易】2C语言中结构化程序设计的三种结构是:顺序结构、 结构、循环结构。【易】3表示“xyz”的C表达式是 。【易】4若整型变量a 和b 中的值分别为7和9,要求按以下格式输出a 和b 的值:【易】a=7,b=9请完成输出语句:printf ( ,a,b);。5当a=2,b=3,c=1时,执行以下程序段后,输出结果是 。【易】 if(ab) if(ac) printf(%dn,a); else printf (%dn,b); printf(endn);6C语言程序由main( )函数开始执行,应在 函数中结束。【易】7设i,n,p均为int型变量,则执行以下程序段后,p的值为 。【易】 p=1;n=4; for(i=1;i=n;i+) p=p*i;8以下程序的输出结果是 。【中】#include void main() int i,j,sum;for(i=3;i=1;i-) sum=0;for(j=1;j=i;j+) sum+=i*j;printf(%dn,sum);9以下程序运行后的输出结果是 。【中】#includevoid main()inta=1,b=7;do b=b/2;a+=b; while (b1); printf(%dn,a); 10以下程序的输出结果是 。【中】#include void main ( ) int a33 =1,2,3,4,5,6,7,8,9,i,s=0; for(i=0;i=2;i+) s=s+aii; printf (“s=%dn”,s);11下列程序段的输出结果是 , 。 【易】int k=1, j=2, *p=&k, *q=p; p=&j; printf(%d, %d,*p, *q);12下列程序的输出结果是 , 。【中】#include void p(int *x,int *y) int *p;p=x; x=y; y=p;void main() int x=0, y=3;p(&y, &x);printf(%d, %d, x, y);13以下程序的输出结果是 。【中】#include void main()int a5=2,4,6,8,10,*p;p=a;p+;printf(%d,*p);14. 设有如下的程序段:【中】char str =Hello ; char *ptr ; ptr=str ;执行完上面的程序段后,*(ptr+5)的值为_。15. 若有定义:int k; ,以下程序段的输出结果是 。 【易】for(k=2;k=y&y=z4. a=%d,b=%d5. end6. main( )/主 7. 24 8. 1 9. 510. s=1511. 2,112. 0,313. 4 14. 015. #2#4模拟题三一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的。 1C语言源程序的基本单位是 。(易)(A)过程 (B)函数 (C)子程序 (D)标识符2 是合法的用户自定义标识符。(易)(A)b-b (B)float (C) (D)_isw 3以下程序的输出结果是 (中)# include void main() int i=010,j=10; printf(%d,%dn,+i,j-);(A)11,10 (B)9,10 (C)9,9 (D)10,94设变量定义为“int a, b;”,执行下列语句时,输入 ,则a和b的值都是10。scanf(a=%d, b=%d,&a, &b);(易)(A)10 10 (B)10, 10 (C)a=10 b=10 (D)a=10, b=105若变量已正确定义,有以下程序段(中)int a=3,b=5,c=7;if(ab)a=b;c=a;if(c!=a)c=b;printf(%d,%d,%dn,a,b,c);其输出结果是 。(A)程序段有语法错 (B)3,5,3 (C)3,5,5 (D)3,5,76有以下程序(难)# include void main() int i; for (i=0; i3; i+)switch (i) case 1: printf(%d , i); case 2: printf(%d , i); default : printf(%d , i); 执行后输出结果是 (A)011122 (B)012 (C)012020 (D)1207若k为整型,则while循环执行 次(中) k=3; while(k=0) printf(“%d”,k); k-; printf(“n”);(A) 1 (B) 3 (C) 2 (D)08有以下程序(难)#includevoid main() int i, j;for(i=3; i=1; i-) for(j=1; jx=2.0 (B)(*p).y=3.0 (C)point.x=2.0 (D)*p-y=3.0二填空题:本大题共15个小题,每小题2分,共30分。请将要填入的内容写在横线上。1 C语言中结构化程序设计的三种结构是:顺序结构、 结构、循环结构。(易)2若整型变量m和n中的值分别为1和2,要求按以下格式输出m 和n 的值:(中)m=1,n=2请完成输出语句:printf (_ ,m,n); 3以下程序的功能是:将值为三位正整数的变量x中的数值按照百位、十位、个位的顺序拆分并输出。(中)#includevoid main() int x;scanf(%d,&x); printf(“%d,%d,%dn”, x/100, , x%10);4当x=2,y=3,z=1时,执行以下程序段后,输出结果是 。(中) if(xy) if(xz) printf(%dn,z); else printf (%dn,y); printf(endn);5设i,n,p均为int型变量,则执行以下程序段后,p的值为 。(中) p=1;n=4; for(i=1;i=n;i+) p=p*i;6有以下程序段s=1.0for(k=1;k=n;k+) s=s+1.0/(k*(k+1); printf(“%fn”,s);请填空,使以下程序段的功能与上面的程序段完全相同。(中)s=1.0,k=1;while( ) s=s+1.0/(k*(k+1); ; printf(“%fn”,s);7以下程序的输出结果是 。(中)#include void main ( ) int a33 =1,2,3,4,5,6,7,8,9,i,s=0; for(i=0;i=2;i+) s=s+aii; printf (“s=%dn”,s);8下面程序段的运行结果是 。(中)char c5=a, b, 0, c , 0;printf(“%s”,c);9. 下面程序的输出结果是 。(难)# include int f(int b8 , int n) int i , r ; r=1 ; for (i=0 ; i=n ; i+) r=r*bi ; return (r) ;void main( ) int x , a =2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ; x=f(a , 3) ; printf(%d , x) ;10以下程序的输出结果是 。(中)#define f(x) x*x#include void main() int a=6, c;c=f(a);printf(“%dn”, c);11以下定义数组的语句中正确的是 。(中)#include void main( ) int i,a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d,ai2-i);12下面程序段的运行结果是 (难)void main( ) int f(int x); int a=2 , i ; for (i=0 ; i3 ; i+) printf(%d , f(a) ; printf(n) ;int f(int x) int y=0 ; static z=3 ; y+ ; z+ ; return(x+y+z) ;13以下函数的功能是,把两个指针变量所指的存储单元中的内容进行交换。(中)void exchange(int *p1, int *p2) int t; t=*p2; *p2 = ; *p1 = ;14以下程序的输出结果是 。(中)#include main() int a=1,2,3,4,5,*p; p=a; printf(%dn,*(+p); 15下面程序段的运行结果是 。(中) char *p=abcde; p+=3;printf(%s,p);三判断题:本大题共10个小题,每小题1分,共10分。将答案写在括号内。1若已定义int a=4,b=5;则a&b的值为1。 (易)( )2在C程序中C 源程序中不能表示的数制是八进制。 (易)( )3用scanf(%7.2f,&a);输入时,整个数据占7位,小数部分占2位。(中)( ) 4当if语句嵌套时,else总和前面与其具有相同缩进位置的if配对。(中)( )5break语句的作用是结束本次循环。 (易) ( )6表达式strcmp(“box”, “boss”) 的值是一个正数。(中)( )7函数可以嵌套定义但不能嵌套调用。(易) ( )8char *p=“good”;的含义是定义字符型指针变量p,p的值是字符串“good”。(中)( )9有二维数组a34,*(*(a+2)+3)代表数组元素a23的值。(难) ( )10在定义一个结构体变量时,系统分配给它的存储空间是该结构体中所有成员所需存储空间的总和。 (易) ( )模拟题三参考答案一、 选择题:本大题共15个小题,每小题2分,共30分。1B2D3B4D5B6A7D8D9D10B11C12C13B14D15D二、 填空题:本大题共15个小题,每小题2分,共30分1. 选择2. m=%d,n=%d3. x/10%10或x%10/104. end5. 246. k=n k+(或k=k+1)7. s=158. ab9. 12010. 3611. 3 5 712. 789 13. *p1 t14. 215. de三、 判断题:本大题共10个小题,每小题1分,共10分。1-5 6-10模拟题四一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的。1下列选项中不属于结构化程序设计原则的是 。 (易)(A) 可封装 (B) 自顶向下 (C) 逐步细化 (D) 模块化设计2以下C语言用户自定义标识符中,合法的是 。(易)(A)int (B)a b (C)7y (D)_123 3以下程序的输出结果是 。 (易)# include void main() int a=8,b=9,c,d;c=+a; d=b-; printf(%d,%d,%d,%d n,a,b,c,d);(A)9,8,9,8 (B)9,8,9,9 (C)9 8 9 8 (D)9 8 9 94已知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);5已知char ch=d;则表达式ch=(ch=a & ch=z)?(ch-32):ch;的值是 。(易) (A) a (B) d (C) A (D) D6有以下程序 # include void main() int i; for (i=0; i3; i+)switch (i) case 1: printf(%d , i); case 2: printf(%d , i); default : printf(%d , i); 执行后输出结果是 。 (中)(A)011122 (B)012 (C)012020 (D)1207以下程序中,while循环执行了 次。(中)int k=3; while(k=0) printf(“%d”,k); k-; printf(“n”); (A) 1 (B) 3 (C) 2 (D)08有以下程序#includevoid main() int i, j;for(i=3; i=1; i-) for(j=1; j=2; j+) printf(%d, i+j);printf(n);程序的运行结果是 。(中)(A)2 3 4 (B)4 3 2 (C)2 3 (D)4 53 4 5 5 4 3 3 4 3 44 5 2 39对两个数组a和b进行如下初始化,则以下叙述正确的是 。(易)char a=abcd;; char b=a,b,c,d;(A)a与b数组完全相同(B)数组a比数组b长度大(C)a与b中存放的都是字符串(D)a与b长度相同10以下程序段的运行结果为 。(中) int i,a33=1,2,3,4,5,6,7,8,9;for

温馨提示

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

评论

0/150

提交评论