c语言复习题资料_第1页
c语言复习题资料_第2页
c语言复习题资料_第3页
c语言复习题资料_第4页
c语言复习题资料_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、第 PAGE 4页,共 NUMPAGES 6页第 PAGE 31页,共 NUMPAGES 31页 模拟题一一、单项选择题(每题2分, 30分)1. 结构化程序设计方法中有三种基本结构,不正确的是_D_。A顺序结构B选择结构C循环结构D数组结构2. 在C语言中,下列变量名称中合法的是_C_。A7x Bint CELse Da-b3.合法的字符常量是_C_。A. 084 B. ab C. x43D. “0”4. 下列变量的定义及赋值正确的是_ C _。A. int i=0;j; B. char c=”A”;C. double x,y,z; D. float a=b=100;x=y=z=100;5.

2、如有以下变量定义:int a=5,b=6,c=12;那么下列表达式结果为真的是_A_。A. a-b B. ab C. b/c D. c%b6.下列的数组定义中合法的是( A ) Aint a=string;Bint a5=0,1,2,3,4,5; Cchar s=string;Dchar a=0,1,2,3,4,5;7.下列循环语句中,不能够正常结束的是_C_。A. int i=0; B. int i=0; for(;i100)break;C. int i=0,j=0; D. int i=0,j=0;while(i=j)j+; doi+=j;i+;j+;while(ij);8. 若有:int

3、a = 1,2,3,4,5,6,7,8,*p=a ; 不能正确表示a5的表达式是_A_。A. p + 5 B. p5 C. *(a +5) D. *(p +5)9. 设有int x=15,y=20则表达式(x/=2+1,y*5),y+25的值和执行表达式后x、y的值分别是_B_。A. 125 8 100 B. 45 5 20 C. 125 5 100 D. 45 8 2010. 以下程序运行后,输出结果是_C_。 #include int b=1;int f() int b=-5; return b*b;void main() printf(%d,%dn,b,f();A. -5,25 B. 1

4、,1 C. 1,25 D. 1,111. 以下程序运行后,输出结果是_D_。 #include #define S(a,b) a*b main() int a=3 ,area; area=S(a,a+1) ; printf(area=%dn,area); A. 15 B. 12 C. 9 D. 1012.能正确表示a10或a 0的关系表达式是_C _。A. a=10 or a=10a=10 | a=0 D. a10 | a 013. 以下叙述中正确的是_D_。A主函数中定义的变量子函数可以使用B局部变量都是自动变量C只要是全局变量,所有函数都可以使用D不同位置定义的变量有效范围不一样14. 当

5、a=1,b=3,c=5,d=4,x=3时,执行下面一段程序后,x的值为_A_。 if(ad) x=1; else if(ad)x=2; else x=0;A. 1 B. 2 C. 3 D. 015. 现有一个文本文件,想以追加方式打开,下列方式正确的是_D_。if(fp=fopen(fname.dat,_)=NULL)printf(can not open file!n,num); exit(0);A. w B.ab C.b D.a二判断题:本大题共10个小题,每小题1分,共10分。1、函数既可以嵌套定义,也可以嵌套调用。 N2、表达式i+表示对变量i自身加1。 Y3、 while语句的循环体

6、至少执行一次。 N4、函数的递归调用不过是一个函数直接或间接的调用自己。 Y5、通过return语句 可以带回一个或多个值。 N6、字符串只能存放到字符型数组中。 Y7、在标准C中“=”是判断2个数是否相等。 N8、静态外部变量只能在本文件使用。 Y9、C 语言是一种结构化的程序设计语言。 Y10、语句scanf(“%7.2f”,&x)是合法的。 N三填空题:本大题共15个小题,每空2分,共30分。1下面程序的运行结果是 4 #include void main( ) int i=3;switch(i) case 1:printf(%dn, i+ ); break;case 2:printf(

7、%dn, i ); break;case 3:printf(%dn, +i ); break;default:printf(*n);2输入一个不超过3位的正整数,判断它是个几位数, weishu ()是判断位数的函数,将程序补充完整。 #include int weishu(int x) if(x/1000) return(3); else if( x/100 ) return(2); else return(1); void main() int a; doscanf(%d,&a) ;printf(%d是%d位数n,a, weishu(a) ); while(a!=0) ; 3计算100到1

8、88之间的所有奇数的平均值,将程序补充完整。 #include void main() int i,j; float average=0,sum=0; for(i=101,j=0 ;i188;i+=2) sum+=i; j+ ; average =sum/j; printf(average =%.2fn,average); 4.判断数组中的整数是不是素数, 将程序补充完整。#include #include int prime(int n) int flag=1,i; for(i=2;i=sqrt(n);i+) if(n%i=0) flag=0;break; return flag; void

9、 main() int i,a6=3,7,9,11,10,6; for(i=0;i6;i+) if(prime(n)=1)printf(a%d=%d是素数n,i,ai);5下面程序的运行结果是 2 5 8 #include int fun(int k) static int b=1;int m;b=b+1;m=k*2+b;return m;void main( ) int i, s; for(i=0; i=2; i+) s=fun(i);printf( %d , s); /* %d前有空格 */printf(n);6下面程序的运行结果是 8, 3 #include void main( )in

10、t a10=3,9,7,8,5,10,1,2,4,6, *p;for ( p=a; pa+10; p+ )if ( *p % 2 = 0 ) printf(%d,%dn, *p, p-a);break;7以下程序的功能是:在一个34的二维数组中,将每行中的最小值与第0列元素对调,请填空。#include void main( )int a34=6,3,5,8, 10,4,2,9, 1,7,15,11, i, j, t, k;for( i=0; i3; i+ )k=0;for ( j=1; j 4 ; j+ )if(aijaik) k = j ;if(k!=0)t=ai0; ai0=aik ;a

11、ik=t;8以下程序功能是:输出低于平均成绩的学生姓名,请填空。# include typedef structchar name20;float score;STU;void main( )STU s10, *p;int i;float ave=0;for (i=0; i10; i+) /* 读入10人的姓名和成绩 */scanf(%s%f, , &si.score );for (i=0; i10; i+)ave+=si.score;ave/=10;printf(低于平均成绩的学生有:n);for(p=s; pscore name ); /* %s前有空格 */四、编程题(30

12、分,每题10分)1编程实现以下计算功能(从键盘上输入x的值,计算并输出y的值)。sin(x)/2 x 10y= (x-1)2 10 x b)&(n=cd)后n的值为( B ) A.1 B.2 C.3 D.4 6、 下述程序的输出结果是( C ) #include void main() int x=-1,y=4; int k; k=+x=0&!(y-5)printf(“%d”,x); else printf(“%dn”,x-); A.7和5 B.6和3 C.7和4 D.6和4 9、若变量c为char类型,能正确判断出c为小写字母的表达式是( D ) A. a=c= a)|(c= z) C. (

13、a=c) D. (c= a)&(c= z) 10、在定义int a10;之后,对a的引用正确的是( D )。 A.a10 B.a6.3 C.a(6) D.a10-10 11、定义如下变量的数组: int i; int x33=1,2,3,4,5,6,7,8,9; 则下列语句的输出结果是( A ) for(i=0;i3;i+)printf(“%d”,xi2-i); A.357 B.147 C.159 D.369 12. 在C语言中,形参的缺省存储类是( A ) A. auto B. register C. static D. extern13. C语言函数返回值的类型是由( D ) 决定的。 A

14、.return语句中的表达式类型 B.调用函数的主调函数类型 C.调用函数时临时分配的 D.定义函数时所指定的函数类型14.设#define NUM 1 + 2,则int var = 2 * NUM * 3 - NUM; var的值是多少?( C ) A. 15 B. 19 C. 9 D. 515.若有以下定义和语句:char strl = string, str25; 则用以复制字符串的正确方法是_B_。 A. strcpy(str2, Hello); B. strcpy(strl, Hello); C. str2 = str1; D. str1 = Hello;二、填空题(每空2分,共30

15、分) 1、结构化设计中的三种基本结构是顺序结构、 循环结构 、 选择结构 。 2、若函数调用语句f(a, b, f(a + b, a - b, b);,则函数f的参数个数是 3 。3、定义int x,y;执行y=(x=1,+x,x+2);语句后,y的值是_4_。 4、若用数组名作为函数调用的实参,则实参传递给形参的是_地址_ _。5、在C语言中,表示逻辑真值用_1_表示。6、设int a34 = 1, 2, 5, 3, 2, 4, 7, 9, 3, 6, 5, 8;则表达式a12 + a23的值是_15_。7、scanf函数是一个标准库函数,它的函数原型在头文件_stdio.h_中。8、设ch

16、ar s10 = abcd,t = 12345;,则s和t在内存中分配的字节数分别是_10_和 6 。9、有以下程序段: int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b; b=*(p+5);b中的值是 9 。10、设char s = E_mail;,则执行printf(%dn, strlen(s);后输出的值是_6_。11、在循环中,结束单次循环用哪条语句 continue 。12、有如下语句:swich(t) case 0:s=2;break; case 1:case 2:s=3;break;case 3:s=4;case 4:s=5; cefault:s=6;

17、当t=1时,s为 3 ;当t=3时,s为 6 。三、判断题(每题1分,共10分)1、逻辑运算符的优先级别高于算术运算符。( 错 )2、在C语言中,不允许在函数中再定义函数。( 对 )3、C语言中可以把一个字符串赋给一个字符变量。( 错 )4、getchar函数的功能是接收从键盘输入的一串字符。( 错 )5、语句int *num=“china”,”japan”,”usa”;数组num中元素都是指针。( 对)6、结构体比共用体更节省内存空间。(错)7、c语言编译生成的文件名后缀为*.exe。(错)8、函数参数值传递中,实参不随形参的改变而改变。(对)9、有语句int a34,(*p)4;p=a;,

18、则*(p+1)表示的数组a01元素。(错)10、局部变量和全局变量可以重名。(对)四、编程题 1、编程输出11000之间能被3整除,又能被7整除的数。2、编写程序打印以下图案 :*3、编写函数,使输入的一个字符串反序存放,在主函数中输入和输出字符串 4、编写程序,将输入的20个整数保存到数组中,并求出其中的最大值、最小值及平均值。模拟题三一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的。 1C语言源程序的基本单位是 。(易)(A)过程 (B)函数 (C)子程序 (D)标识符2 是合法的用户自定义标识符。(易)(A)b-b (B)float (C)

19、 (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,

20、%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-; p

21、rintf(“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分。请将要填入的内容写在横线上。C语言中结构化程序设计的三种结构是:顺序结构、 结构、循环结构。(易)2若整型变量m和n中的值分别为1和2,要求按以下格式输出m 和n 的值:(中)m=1,n=2请完成输出语句:printf (_ ,m,n); 3若a是int型变

22、量,则下面表达式(a=4*5,a*2),a+6的值为 。(中)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下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。(难) int n=0,c; c=getchar(); while( ) if( )n+; c=getchar(); 7以下程序的

23、输出结果是 。(中)#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 =

24、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); in

25、t 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下

26、面程序段的运行结果是 。(中) 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”) 的值是一个正数。(中)( )

27、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. 264. end5. 246. c!=

28、n c=0&c=97. 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 voi

29、d 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,

30、&j,&k);5已知char ch=d;则表达式ch=(ch=a & ch=z)?(ch-32):ch;的值是 。(易) (A) a (B) d (C) A (D) D6有以下程序 #include main( ) char ch; ch=getchar( ); switch(ch) case A : printf(“%c”,A); case B : printf(“%c”,B); break; default: printf(“%sn”,”other”); 当从键盘输入字母A时,运行结果为: 。(中)(A) AB (B) A (C)B (D) other7设有程序段 int k=10; wh

31、ile(k=0)k=k-1; 这下面描述中正确的是_.(中)(A)while循环执行10次 (B)循环是无限循环 (C)循环体语句一次也不执行 (D)循环体语句执行一次8执行语句for(i=1;i+4; );后变量i的值是_. (A)3 (B)4 (C)5 (D)不定9下面程序段的运行结果是_. char a7=abcdef;char b4=ABC; strcpy(a,b); printf(%c,a5); (A)空格 (B)0 (C)e (D)f10若有以下程序: void main() int m 3=1,3,2,4,5,7,6,8,9,10,11; int i,k=2; for(i=0;i

32、3;i+) printf(“%d”,mki);程序执行后的输出结果是: 。(中)a) 4 5 7 b) 2 7 9 c) 9 10 11 d) 6 8 911有以下程序:void fun(int a,int b,int c)a=456,b=567,c=678; main()int x=10,y=20,z=30;fun(x,y,z);printf(%d,%d,%dn,x,y,z);输出结果是 。(中) A)30,20,10 B)10,20,30 C)456,567,678 D)678,567,45612以下叙述中正确的是 。 (易)(A) 构成C程序的基本单位是函数 (B) 可以在一个函数中定义

33、另一个函数 (C) 函数不能嵌套调用(D) 被调函数的定义位置一定要在主调函数之前 13已知int a=1,2,3,4,5,6,7,8,9,0,*p=a;则printf(“%d”,*p+9);的运行结果为 。(难)(A)0 (B)1 (C)10 (D)914若有定义:int a5,*p=a;则对a数组元素地址的正确引用是 。 (易)(A)p+5 (B)*a+1 (C)&a+1 (D)&a015定义共用体的关键字是_ 。(易)(A)union(B)enum(C)struct(D)typedef二判断题:本大题共15个小题,每小题1分,共15分。将答案写在括号内。1C程序总是从main函数开始执行

34、,无论main函数的位置如何。 (易) ( )2 当if语句嵌套时,else总是与它前面最近的一个未匹配的if相匹配,不受缩进格式影响。(中)( )3在循环过程中,使用break语句和continue语句的作用是一样的。 (易) ( )4表达式1/8的值是0。 (易)( )5C语言编绎系统以0代表“假”,以1代表“真”。 (易) ( )6已知char *array=china; 则array的值是字符串china。 (中) ( )7函数中的形参和调用时的实参都是数组名时,传递方式为地址传递。 (中) ( )8当判断两个字符串s1和s2是否相等,可以使用用:if (s1= =s2) 。 (中)(

35、 )9假设有inta10,*p;则P=&a0与p=a相等。 (易) ( )10 共用体变量所占的内存长度等于最长的成员的长度 (中) ( )三、填空题:本大题共15个小题,每小题2分,共30分。请将要填入的内容写在横线上。1.C语言中运算对象必需是整型的运算符是 (易)2设n=10,i=4,则赋值运算n%i+1执行后的n值是 。(易)3当10 x100时,y值为50,用C语言描述为if( ) y=50; (易)4. 输入两个实数,按代数值由大到小的次序输出这两个数。(中)void main() float m,n,t; scanf(“%f,%f”,&m,&n); if (mb) if(ac)

36、printf(%dn,a); else printf (%dn,b); printf(OKn);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以下程序运行后的输出结果是 。(中)#includevoid main() int i,sum=0; for(i=1;i9;i+=2) sum+=1;printf(“%dn”,sum);8若有定义语句:char

37、s10=abcdn0;,则strlen(s)的值是 。(中)9. 以下程序的输出结果是 。 (中) #include void main() int a5= 1,3,5,7,9,*p;p=a;p+;printf(%d,*p); 10以下程序的输出结果是 。(难)#define f(x) x*xmain() int a=8, b=4, c; c=f(a)/f(b); printf(“%dn”, c);11以下函数的功能是计算xn,主函数中已定义a,b,m变量并赋值,通过调用函数fun( )计算表达式m=a4+b4的语句为 。(中)double fun(double x,int n) int i;

38、 double y=1;for(i=1,i=n;i+)y=y*x;return y12下面程序的运行结果是 。(难)#include f(int a) static int b=0; b=b+1; return(a+b);main( ) int a=2,i; for(i=0;i3;i+) printf(“ %d”,f(a); 13已知int a34=1,3,5,7,9,11,13,15,17,19,21,23,(*p)4,; p=a;通过指针输出数组元素a23的方法为printf(a23=%dn, ); (难)14以下程序运行后的输出结果是 。(难)void main()char s=l59,

39、*p; p=s; printf(c,*p+);printf(c,*p+);15以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。(难)#include main() FILE *fp;char c;fp= ;doc=getchar();fputc(c,fp);while(c!=n); ; 模拟题四答案选择题:本大题共15个小题,每小题2分,共30分。1A2D3B4C5D6A7C8C9D 10D11B12A13C14D15A判断题:本大题共10个小题,每小题1分,共10分。1-5 6-10填空题:本大题共15个小题,每小题2分,共30分1.

40、%2. 33. x=10&x=1004. m=n n=t5. OK6. k=n k+(或k=k+1)7. 48. 59. 310. 6411. m=fun(a,4)+fun(b,4)12. 3 4 5 13. *(*(p+2)+3)14. 1515. fopen(myfile.txt,w) fclose(fp);模拟题五一、选择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的,将正确选项前的字母写在相应横线上。1以下叙述中错误的是 (易)(A)C语言中的符号常量必须使用大写 (B)C语言中的所有关键字都必须是小写(C)C程序的执行总是从主函数开始,并在主

41、函数中结束 (D)C语言是一种结构化程序设计语言2在C语言中,数字078是 (易)(A) 十进制数 (B)八进制数 (C)十六进制数 (D) 非法数3C语言中字符型数据在内存中的存储形式是 (易) (A)原码 (B)补码 (C)反码 (D)ASCII码4执行printf(“%x”,100);后的输出结果是 (中) (A)100 (B)0 x100 (C)0X64 (D)64 5有以下程序: #include main( ) int a,b;int x;a=10;b=4;x=3.2+a/b;printf(“%d”, x); 程序运行后的输出结果是 (中)(A)5.2 (B)5 (C)5.7 (D

42、)6 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

43、 (B)9 (C)10 (D)9 9 8 9 8 8 7 8 7 7 68在一个C源程序文件中所定义的全局变量,其作用域为 (易)(A)由具体定义位置和extern说明来决定范围(B)所在程序的全部范围(C)所在函数的全部范围(D)所在文件的全部范围9若有如下程序: #include#define s(x, y) x*(y)void main( ) int a,b,area; a=2,b=3; area=s(a+2,b+2);printf(“%d”,area);程序运行后的输出结果是 (中)(A)12 (B)20 (C)10 (D)1410以下不能正确进行字符串赋值的语句组是 (中)(A)ch

44、ar s5=a,e,i,o,u;(B)char *s; s=”good”;(C)char s 5=”good”;(D)char s5; s=”good”;11若有说明“int a34=0;”,则下面叙述正确的是 (易)(A)只有a00可得到初值(B)此说明语句不正确(C)数组a中各元素都可得到初值,但其值不一定为0(D)数组a中每个元素均可得到初值012以下程序的输出结果是 (难)#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 (

45、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对于C语言函数,下列叙述正确的是 (易)(A)函数的定义不能嵌套,但函数调用可以嵌套(B)函数的定义可以嵌套,但函数调用不能嵌套(C)函数的定义和调用都不能嵌套(D)函数的定义和调用都能嵌套二填空题:请将正确答案

46、填写在相应横线上。本大题共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凡是函数中

47、未指定存储类别的局部变量,其隐含的存储类别为_。(易)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

48、 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下面程序的输出结果是_(难)#includeint f ( ) static int i=0; int s=1; s+=i; i+; return s; void main(

49、 ) int i,a=0;for(i=0;i5;i+)a+=f( );printf(“%d”,a);8设有如下定义:char str=”Beijing”;则执行下列语句后的输出结果为_。(中) printf (“%d”,strlen(strcpy(str, “Hello”);9有以下程序段: int a10=1,2,3,4,5,6,7,8,9,10, *p=&a3, b; b=p5; 则b中的值是_。(难)10有一个switch语句描述的多分支结构程序如下:#includevoid main( )int x,y; scanf(“%d”,&x); switch(x) case 0: y=1; c

50、ase 1: y=10; case 2: y=100; case 3: y=1000; default: y=-1; printf(“y=%d”,y);当输入0时,程序运行结果是_;当输入2时,程序运行结果是_。(中) 11已知“int a,b;”,执行语句“a=(b=2*3,b*5),b+6”后,变量a的值是_。(中)三判断题:本大题共10个小题,每小题1分,共10分。1在循环结构中continue语句是结束整个循环,break语句是结束本次循环。( )(易)2在C程序中无论是整数还是实数,都能准确无误的表示。( )(中)3赋值表达式的左边必须是变量。( )(易)4C程序中每一行只能写一条语

51、句。( )(易)5可以用语句“int n=5; int a4n;”定义数组a。( )(中)6C源程序中能表示的数制有:十六进制、八进制、十进制、二进制。( )(中)7在不同函数中,可以使用相同名字的变量。( )(易)8可以给指针变量赋一个整数作为地址值。( )(易)9逻辑运算符两侧的运算对象可以是任意合法的表达式。( )(中)10若有定义语句:double a, *p=&a; 则定义语句中的*是一个间址运算符。( )(易)四编程题:本大题共3个小题,每小题各10分,共30分。1编写程序,从键盘输入一个3位的整数,求它的百、十、个位上的数字并依次输出。(中)2有一函数:,编写程序,使输入x时输出

52、相应的y值。(易)3编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。 例如,若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。 注意:部分源程序给出如下,仅在函数fun的花括号中填入你编写的若干语句。(难)#includefloat fun( float * a, int n )void main( ) float score30= 90.5, 72, 80, 61.5, 55, aver;aver=fun( score, 5 );printf(“The average score is:%5.2f n”, aver );模拟题五答案一、选

53、择题:本大题共15个小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是正确的,将正确选项前的字母写在相应横线上。1A 2D 3D 4D 5B 6A 7B 8A 9A 10D 11D 12D 13B 14A 15A 二填空题:请将正确答案填写在相应横线上。本大题共15个空,每空2分,共30分。1ch+322max=q3auto 4n/2 i an-1-i522 136i (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

54、 (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为整

55、型,则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,

56、 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(

57、) 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数组定义为 in

温馨提示

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

评论

0/150

提交评论