C语言测试题十 二
一、 选择题(40分)
1. 以下叙述正确的是( )
A、可以把define和if定义为用户标识符
B、可以把define定义为用户标识符,但不能把if定义为用户标识符
C、可以把if定义为用户标识符,但不能把define定义不用户标识符
D、define和if都不能定义为用户标识符
2. 若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);
给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:( )
A、10<回车>22<回车> 33<回车> B、10.0,22.0,33.0<回车>
C、10.0<回车>22.0 33.0<回车> D、10 22<回车> 33<回车>
3. 若有定义: float w;int a,b;则合法的switch语句是( )
A、switch(w) B、switch(a)
{ case 1.0:printf("*\n"); { case 1 printf("*\n");
case 2.0:printf("**\n"); case 2 printf("**\n");
} }
C、switch(b) D、switch(a+b)
{ case 1:printf("*\n"); { case 1:printf("*\n");
default:printf("\n"); case 2:printf("**\n");
case 2-1:printf("**\n"); default:printf("\n");
} }
4. 有如下程序
main( )
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);}
该程序的输出结果是( )
A、0.000000 B、0.250000 C、0.500000 D、1.000000
5. 若i为整型变量,则以下循环执行次数是( )
for( i = 2; i!= 0; ) printf(“%d”, i-- );
A. 无限次 B. 0次 C. 1次 D. 2次
6. 以下程序的运行结果是( )
main( )
{ int y = 10 ;
do { y-- ; } while( --y ) ;
printf(“%d\n”, y-- ); }
A. -1 B. 1 C. 8 D. 0
7. 设有程序段:
int k = 10 ;
While( k = 0 ) k = k – 1 ;
则下面描述中正确的是( )
A. while循环执行10次 B. 循环是无限循环
C. 循环体语句一次也不执行 D. 循环体语句执行一次
8. 以下不是无限循环的语句是( )
A. for( y = 0,x = 1; x > ++y; x = i++ ) i = x ; B. for( ; ; x ++ = i );
C. while(1) { x ++ ; } D. for( i = 10; ; i-- ) sum+=i;
9. 若有说明: int a[10] ;则对数组元素的正确引用是( )
A. a[10] B. a[3.5] C. a(5) D. a[10-10]
10. 若有说明:int a[ ][3] = {1,2,3,4,5,6,7};则a数组第一维的大小是( )
A. 2 B. 4 C. 3 D.不确定
11. 已知:char str1[8], str2[8] = { “good” }; 则在程序中不能将字符数组str2赋值给str1的语句是( )
A. str1 = str2 ; B. strcpy(str1, str2);
C. strncpy(str1, str2, 6) D. memcpy(str1, str2, 5);
12. 以下不能进行字符串赋初值的语句是( )
A. char str[5] = “good!”; B. char str[ ] = “good!”;
C. char str[8] = “good!”; D. char str[5] = {‘g’,’o’,’o’,’d’};
13. 以下不正确的说法是( )
A. 实参可以是常量,变量或表达式 B. 形参可以是常量, 变量或表达式
C. 实参可以为任何类型 D.形参应与其对应的实参类型一致
14. 以下正确的函数定义形式是( )
A. double fun( int x, int y ) B. double fun( int x; int y )
C. double fun( int x, int y ); D. double fun( int x, y );
15. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )
strcmp比较数组A. 自动(auto) B.静态(static) C. 外部(extern) D. 寄存器(register)
16. C语句规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )
A. 地址传递 B. 单向值传递
C. 由实参传给形参,再由形参传回给实参 D. 由用户指定的传递方式
17. 下面能正确进行字符串赋值操作的是( )
A. char s[5]= {“ABCDE”}; B. char s[5]= {‘A’,’B’,’C’,’D’,’E’}
C. char *s; s= “ABCDE” ; D. char *s ; scanf(“%s”,s) ;
18. 下面说明不正确的是( )
A.char a[10]= “china” ; B.char a[10], *p= a; p= “china” ;
C.char *a; a= “china” ; D.char a[10], *p; p= a=“china” ;
19. 变量的指针,其含义是指该变量的( )
A. 值 B. 地址 C. 名 D. 一个标志
20. 已有定义int k = 2; int *ptr1, *ptr2;且ptr1和ptr2均已指向变量k ,下面不能正确执行的赋值语句是( )
A. k = *ptr1 + *ptr2 ; B. ptr2 = k ; C. ptr1 = ptr2 ; D. k = *ptr1*(*ptr2);
二、 填空题(30分)
1. 程序中经常使用到常数6.6678,使用RUN表示,其宏定义格式为
2. 4/5*6的值是
3. 调用带参数的函数时,实参列表中的实参必须与函数定义时的形参 相同、
相符。
4. 二维数组a[2][3]={ {1, 2,6}, {3,0,5}}中元素a[0][2]的值是__________
5. 从函数定义的角度看,函数可分为 函数和 函数两种。
6. 若有定义int a[ ]={ 2,4,6,8,10,12 },*p = a ;则*(p+ 3)的值是
*(a + 4)的值是
7. 对于有返回值的函数来说,通常函数体内包含有 语句,其格式为 ;
用于将返回值带给调用函数。
8. 对带有参数的函数进行调用时,参数的传递方式主要有 调用和 调用两种方式。
9. C语言程序中,函数不允许嵌套 ,但允许嵌套 。
10. 若a是int 型变量时,则表达式: (a = 4*5, a*2), a+6的值是 。
11. 当循环体内遇到 、 或 语句时,将退出循环。
12. do-while语句和while语句的区别在于 。
13. break语句在循环体中的作用是 ,continue语句在循环体中的作用是
14. goto语句可与 语句配合使用,构成循环。
15. 变量的作用域和生存期是从 和 的角度来体现变量的特性。
三、 程序填空题(20分)
1.下面程序的功能是将键盘输入的字符串str中的所有‘c’字符用‘C’替换。请补充程序。
#include<stdio.h>
#incluce<string.h>
main( )
{ int i ;
Char str[80] ;
gets( ) ;
for( i = 0 ; ; i++ )
{ if( str[i] != ‘c’) ;
;
}
printf(“%s\n , ”, str ) ; }
2. 函数sstrcmp( )的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于是t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp( ) ),请填空。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论