2024年4月27日发(作者:)
计算机程序设计基础
2018-2019学年 第二学期
一.选择题:(共30分,每题1分)
1. 关于C语言中的变量,以下说法正确的是______。
A)变量的类型可以根据需要随时改变
C)变量可以没有数据类型
A)double A,a;
A)''
B)变量的类型是在定义的时候确定的
D)变量的取值范围与其类型没有关系
D)int n=6,G[n];
D)0L
D)double x;
D)double d[3];
D)有语法错误
D)0
2. 以下数据定义中,有语法错误的是______。
B)float _0,*q[7]; C)char For;
B)6.18e-5 C)0x5G
3. 以下选项中,非法的C语言常量是______。
4. 如果要使x=3.1415926正确赋值,则x应定义为______。
A)int x; B)long x; C)float x;
C)float c[4];
C)14
C)15
5. 下面定义的数组中,占用内存空间最大的是______。
A)char a[20]; B)int b[5];
A)12
A)5
B)13
B)10
6. 若有定义:int x=5, y=7;, 则表达式++(x+y)的值是______。
7.
若有定义:int x=18; 则执行语句x=5/9*x+5;后,变量s的值是______。
8. 若有定义:int x;,能使表达式 5 A)6,7,8,9 C)所有的整数 A)m||n A)&& B)大于5的所有整数 D)小于10的所有整数 C)m==n C)/ D)m>n && n>0 D)= 9. 若有定义:int m=3.8, n=3; ,则以下表达式值为0的是______。 B)m/n B)>= 10. 下面的C语言运算符中,优先级高于“!=”但低于“+”的运算符是____。 11. 若int x=5, y=6, p=0 ; 则执行以下语句后p值是______。 if ( x++==y ) p=2 ; else p=3 ; A )0 B)2 C)3 D)有语法错误 D)6和8 12. 设int m=2,n=5; 求解表达式(m=6)||(n=8)后m和n的值分别为____。 A)2和5 B)6和5 C)2和8 13. 下列关于选择语句的叙述中错误的是_____。 A)if必须与else配合使用 C)if也能实现多分支结构 A)-1 B)switch通常与break配合使用 D)switch常用来实现多分支结构 C)5 D)9 14. 执行语句for ( n=0,k=9; k>0; k=k-2 ) n++ ;后变量k的值是______。 B)0 15. 若有定义:int n=0;下面的循环语句执行后,变量n的值为______。 for( i=1 ; i<10 ; i++ ) for( j=0 ; j<=5 ; j++ ) n++; A)45 B)50 C)54 C)7 C)12 D)60 D)8 D)42 D)40 16. 若有定义int a[10]={ 2,4,6,8,10,12 };则数组元素a[a[3]-1]的值为______。。 A)0 A)6 A)9 B)6 B)7 B)10 17. 若有定义long f[][6]={ 1,2,3,4,5,6,7 };则数组f中数组元素的个数为______。 18. 若有说明:char s[40]= "GoodByen";则strlen(s)的值是______。 C)11 19. 关于字符串与字符数组,下面说法错误的是_____。 A)字符串其实就是字符数组 B)字符数组其实就是字符串 D)字符串长度可以为0 B)函数定义可以相互重叠 D )main函数定义必须在最前面 C)char D)void C)字符数组可以用来存放字符串 A)函数可以嵌套定义 C)函数必须独立定义 A)int 20. 关于函数定义,下面说法正确的是_____。 21. 若某函数的功能是求两数的最大公约数,则函数类型应定义为_____。 B)float 22. 关于函数的参数,下面说法正确的是_____。 A)形参就是函数的局部变量 C)实参不能是变量 B)实参只能是变量或表达式 D)函数调用不能做实参 B)数组元素a[0]的地址 D)数组元素a[1]的地址 C)p=&x C)p=z C)p++==--q C)p[0] D)q=&x D)p=&y D)p-q>=0 D)*(wh+1) 23. 若有定义:int a[10]; 则数组名a做函数实参时,传递给形参的是_____。 A)数组a中的所有元素的值 C)数组元素a[0]的值 A)p=x A)p=x A)p++ A)*wh 为_____。 A)f(x,10); A)char p; B)f(p,10); C)f(p+1,9) C)char *p; D)f(x[0],10) D)char **p; 29. 若要使p="Computer";,则p应定义为______。 B)char p[40]; 30. 设有定义:int (*q)( );则q可以用来保存______。 A)一个int型无参函数的入口地址 C)一个int型二维数组的首地址 B)任何一个无参函数的入口地址 D)一个int型指针变量的地址 24. 设有定义:int x,*p;char *q;,则下列表达式能正确赋值的是_____。 B)p=q B)p=y B)q>=x+4 B)*p 25. 设有定义:float x,y[10],z[3][4],*p;,则下列表达式能正确赋值的是_____。 26. 若有定义:int x[6]={1,2,3,4,5,6},*p=x+3,*q=&x[4]; ,则下列表达式值为0的是_____。 27. 若有:int wh[8]={1,3,5,7,9,11,13,15},*p=wh;,则表达式的值不为1的是_____。 28. 设某函数首部为void f(int a[],int n),若有定义:int x[10],*p=x;,则调用f函数不正确的形式 二.填空题:(共40分,每题4分) 1. 下面程序的输出结果为_____。 void main( ) { } int a=256, x=0; if ( a>=60 || a<=120 ) if ( a<=120 ) x = 6; else if( a>=60 ) x = 3; else if( a>=120 ) x = 9; printf( "%d", x ); 2. 下面程序的输出结果为_____。 void main( ) { int i, f=1; for( i=1 ; i<=4 ; i++ ) { f=2*f+1; } printf( "%d", f ); } 3. 下面程序的输出结果为_____。 void main( ) { int k, x=50; for( k=x ; k>0 ; k-- ) { if (k%3==0 && k%4!=0) break; } printf( "%d", k ); } 4. 下面程序的输出结果为_____。 void main( ) { int k=0, i, n=0, a[5]; while( k<5 ) { n=n+10; for( i=n+1 ; i<=n+10 ; i++ ) { if(i%3==0) { break; } } a[k]=i; k++; } printf( "%d", a[4] ); } 5. 下面程序的输出结果为_____。 void main( ) { int i,u=0; char s[5][20]={"China","Russian","American","Britain","France"}; for( i=0; i<5; i++ ) u = u + strlen(s[i]); printf( "%d", u ); }
发布评论