10. 设s1,s2为C语言语句,下面四个条件语句中除( )之外,其余三个语句是等价的。
A)if(a) {if (b) s1;} else s2; B)if(!a) s2;else if(b) s1;
C)if(a&&b) s1; else s2; D)if(a*b) s1;else if(!a) s2; 11. C语言的函数体中,下面的描述中( )是正确的。
A) 可以定义和调用其它函数 B)可以调用但不能定义其它函数 C)不可调用但可以定义其它函数 D)不可调用和定义其它函数 12. 在C语言中,switch语句后一对园括号中表达式的类型为( )。
A)可以是任何类型 B)只能为int类型 C)可以是整型或字符型 D)只能是整型或实型
13. 若一个函数体中定义与全局量相同的名字的变量x,在函数体内对x赋值,修改的是( )。
A)局部量x B)全局量x C)局部量和全局量都被修改 D)不确定 14. 已知函数fun定义如下:
int fun(int n) {int x; x=n-3; return (x); } 则函数调用fun(fun(10)) 的值是( )。
A)10 B)7 C)4 D)1 15. 已知int i=10,*p=&i;下面描述错误的是( )。
A)p的值为10 B)p指向整型变量i C)*p表示变量i的值 D)p表示变量i的地址 16.若有以下定义,则对a数组元素的正确引用是( )。 int a[5]={ 1, 2, 3, 4, 5 } ; * p=a ;
A)*a[1] B)a[p+1] C)&(p+1) D)p[a[2]] 17.若有说明:
char *language[]={“FORTRAN”, “BASIC”, “PASCAL”, “JAVA”, “C” }; 则printf( “%s” , language[2] ) 的显示结果值是( )。
A) BASIC B)PASCAL C)R D)一个地址值 18. 若有函数定义:
int *max(int a[], int len)
{ int i, *p ; /* 寻找最大值a[i] */ ; p=&a[i]; return(p);}
并且在主函数中说明了变量 int x[10], m, *pm ; 调用该函数的正确方法是( )。 A)x=max(x,10); B)m=max(x,10); C)pm=max(x,10); D)*pm=max(x,10);
19. 设有定义语句:struct R { int x; int y; }; struct R a[2]={{2,4},{6,8}};则
printf(“%d\\n” ,a[1].y); 的输出为( )。
A)2 B)4 C)6 D)8 20. 设有以下函数的定义,则返回的函数值是( )。
main( ) int * fun(int * a) {int x, *y; { int * t; y=fun(&x); *a=99;
} t=a;
return t;}
A)无确切值 B)形参a的地址
C)主程序中变量x的地址 D)函数中变量t的地址 21. 有如下程序,该程序的输出结果是( )。
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=2 22. 设有如下定义,则对data中的成员的正确引用是( )。
struct { int x ; float y; } data , *p = &data ;
A)(*p).data.x B)p->x C)p->data.x D)(*p).data 23. 以下叙述中不正确的是( )。
A)一个变量的作用域完全取决于变量说明语句的位置 B)外部变量可以在函数以外的任何位置定义
C)局部变量的生存期只限于本次函数调用,无法将局部变量的值保存至函数的下一次调用
D)用static说明的一个外部变量是为了限制其他编译单位的引用 24. 当调用函数时,实参是一个数组名,则向函数传送的是( )。
A)数组的长度 B)数组的首地址
C)数组每一个元素的地址 D)数组每个元素中的值 25. 设有以下说明语句
struct ex
{ int x ; float y; char z ;} example; 则下面的叙述中不正确的是( )。 A)struct结构体类型的关键字 B)example是结构体类型名 C)x,y,z都是结构体成员名 D)struct ex是结构体类型 26. 以下只有在使用时才为该类型变量分配内存的存储类说明是( )。
A)auto和register B)auto和static
C)register和static D)extern和register 27. 下面是对s的初始化,其中不正确的是( )。
A)char s[5]={“abc”}; B)char s[5]= {‘a’,’b’,’c’}; C)char s[5]=\; D)chars[5]=\; 28. 若有说明int(*p)[3];则以下( )是正确的叙述。
A)p是一个指针数组 B)(*p)[3] 与*p[3]等价
C)p是一个指针,它可以指向一个一维数组中任一元素
D)p是一个指针,它只能指向一个包含3个int类型元素的一维数组
29. 如有以下定义:int y[4][4]={1,2,3,4,5,6,7,8,9,10}, *py1=y[1], (*py2)[4]=y; 则
不能正确引用值为7的数组元素的表达式是( )。
A)*(y[1]+2) B)*(y+1)+2 C)py1[2] D)
py2[1][2]
30. 设有:char s[]=\则以下叙述中正确的是( )。
A) 数组s的内容与指针变量p中的内容相同 B) 数组s的长度与strlen(p)的值相等 C) p[5]的值等于s[5]的值 D) sizeof(s)等于sizeof(*p)
二.填空题。(每空1分,共16分)
1. C 程序可以由多个函数组成,其中必须有且只能有一个名字为 函数。
2. 用高级语言编写的源程序必须通过 程序翻译成二进制程序才能执行,这个二进程
序称为 程序。
3. 在程序中若要使用fabs( )必须使用文件包含命令为 。 4. 逻辑运算符两边的运算对象的数据类型可以是 的数据。 5. 若有定义:int a=3; 表达式(4*5,a=a*2),a+6的值是 ,变量a的值是 。 6. 自增自减运算符的运算对象只能为 ,不能为常量和表达式。 7. 在嵌套if语句中else 总是与 的if配对。
8. 定义文件型指针fp的语句是 ,文件类型在 头文件中定义。 9. 用数组名作为函数调用的实参,则传递给形参的是 。
10.在C语言中,变量的存储类别有四种,它们是 、 、 、_ 。
三、阅读程序,写出运行结果:(每题3分,共24分)0 1. main() 2. main ()
{ int i=3; { int a[]={1,2,3,4,5}, y; switch(i) y=sub(a,5) ;
{ case 4:i+=1; printf(\ case 5:i+=1; break; sub(int s[], int len) case 6:i+=1; break; { int i,sum=0;
default:i+=1; for (i=0; i 3. main ( ) 4. main() { int s = 0 , i ; { int f();int x=2,y=4; for( i = 1; i<10; i++ ) printf(\ if (i%3) printf(\ continue ; int f(int *x,int y) else s+=i ; { *x=*x+y; y=*x+y; printf (\ return y; } 5. main ( ) 6. main() { static int a[10]={15,2,4}; { union int i, c=0 ; { int a; for(i=0; i<10; i++) unsigned char ch[2]; if( !a[i] ) c++ ; }au; printf(\ au.ch[0]=0xfe; au.ch[1]=0xff; printf(\.a); } } 7. main() 8. main() { int i,j; { struct s char c,*a=\ { int a; printf(\ int *b; for(i=0;i<4;i++) } x[]={{100},{200}},*p=x; *(a+i)=*(a+i+4); int x0[]={110,120},x1[]={210,220}; printf(\ x[0].b=x0; x[1].b=x1; } printf(\ } 四、程序填空题:(每空2分,共30分) 1. 假设90分以上为A等,80分到89分为B等,70分到79分为C等,60分到69分为D等, 60分以下为E等。下面是输入一个分数,输出相应的五分制成绩的程序。 void main() {float score; printf(”score=”);scanf(”%f”,score); if(score>100||score<0) printf(”Input Error!”); else switch ( _________ ) {case 9: case 10:printf(”A\\n”);break; case 8: printf(”B\\n”);break; case 7: printf(”C\\n”);break; case 6: printf(”D\\n”);break; default: _____________; } } 2.下面的函数sum(int n)完成计算 ?i ,请完善之。 i?1n sum(int n) { if (n<=0) printf(\ if(n==1) ______________; else ______________; } 3.以下程序用来判断输入的数f是否为素数。当f为素数时,输出字符串YES,否则输出NO。 请填空。程序中,变量ok用来标志f是否是素数,ok的值为“真”表示是素数,否则不是素数。 #include { int i,n,f; int ok; printf(\ scanf(\ ok=1;i=2;n=f/2; while(ok &&_______________ ) if(f%i) i=________________ ; else ok=________________ ; printf(\%d\ if (ok) printf( ________________ ); else printf( \ } 4. 下面的程序通过函数average()计算数组中各元素的平均值。 float average(int *p, int n) { int i; float avg=0.0; for(i=0;i avg=avg+______________; avg = ______________; return avg; } main() { int i, a[5]={2,4,6,8,10}; float mean; mean = average(a,5); printf(\ } 5. 下面程序的功能是打印100以内个位数为6且能被3整除的所有数。 main() { inti,j; for ( i=0; ____________ ;i++) { j = i*10+6; if(_____________) continue; printf(\ } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言 模拟试题+答案(3)在线全文阅读。
相关推荐: