4.(1)float a[ ],int n (2)return (sum/n); 5.(1)cp=str; (2)cp++;
五、程序设计题(2个小题,共15分): 1. #include “stdio.h” void main( )
{ float s=0,t=1; ???????? 1分 int n,p=1; ???????? 1分
for(n=1;n<=10;n++) ???????? 4分 { t=t*n; s=s+t*p; p=-p; }
printf(\2!+??-10!=%f\\n\; ???????? 1分 }
2. #include “stdio.h” int strlength(char *s); void main( ) { int n1,n2;
char *list1=“See no evil,hear no evil”; char *list2=“blind and deaf?; n1=strlength(list1); n2=strlength(list2); puts(list1);
printf(“The length of list1=%d\\n”,n1); puts(list2);
printf(“The length of list2=%d\\n”,n2); }
int strlength(char *s)
{ int n=0; while(*s!=‘\\0’) { n++; s++; } return (n); }
第三套试题
一、 选择题(15个小题,每小题2分,共30分): 1、C语言编译程序是____。
A.C程序的机器语言版本 B.一组机器语言指令
C.将C源程序编译成目标程序的程序 D.由制造厂家提供的一套应用软件 2、在一个C语言的源程序中,( )。 A.必须有一个主函数 B.可以有多个主函数 C.必须有主函数和其它函数 D.可以没有主函数 3、以下选项中不合法的用户标识符是____。 A.ABC B.abc C.a_bc D.ab.c
4、C语言中运算对象必须是整型的运算符是____。 A.% B./ C. ! D.*
5、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是____。 A.read(a,b,c); B.scanf(\C.scanf(\.scanf(\6、为表示关系x≥y≥z,应使用C语言表达式____。 A.(x>=y)&(y>=z) B.(x>=y)AND(y>=z) C.x>=y>=z D.(x>=y)&&(y>=z)
7、以下对二维数组a进行不正确初始化的是_____。
A.int a[ ][3]={3,2,1,1,2,3}; B.int a[ ][3]={{3,2,1},{1,2,3}}; C.int a[2][3]={{3,2,1},{1,2,3}}; D.int a[ ][ ]={{3,2,1},{1,2,3}}; 8、若有定义:int x,*pb;则以下正确的赋值表达式是____。 A.pb=&x B.pb=x C.*pb=&x D.*pb=* 9、C语言中函数返回值的类型是由_____决定。
A.return语句中的表达式类型 B.调用函数的主调函数类型 C.调用函数时临时决定 D.定义函数时所指定的函数类型 10、设有如下函数: fff(float x)
{ printf(“%d\\n” , x*x); } 请问fff函数的返回值类型是____。
A.与参数x的类型相同 B.是void C.是int D.无法确定 11、在C语言程序中,下列说法正确的是_____。 A.函数的定义不可以嵌套,但函数的调用可以嵌套 B.函数的定义可以嵌套,但函数的调用不可以嵌套 C.函数的定义和调用都不可以嵌套 D.函数的定义和调用都可以嵌套
12、下述对C语言字符数组的描述中错误的是_____。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D.不可以用算术运算符对字符数组中的字符串进行运算 13、以下叙述正确的是_____。
A.do_while语句构成的循环不能用其它语句构成的循环来代替 B.do_while语句构成的循环只能用break语句退出
C.用do_while语句构成循环时,只有在while后的表达式为非零时结束循环 D.用do_while语句构成循环时,只有在while后的表达式为零时结束循环 14、( )是不正确的C语言赋值语句。
A.x=1, y=2 ; B.x++ ; C.x=y=5 ; D.y=int(x) ; 15、若有如下说明,则_____的叙述是正确的。 struct st { int a; int b[2]; }a;
A.结构体变量a与结构体成员a同名,定义是非法的 B.程序只有在执行到该定义时才为结构体st分配存储单元 C.程序运行时为结构体变量a分配6个字节存储单元 D.不能将结构体类型说明与变量定义紧凑写在一起 二、 判断题(10个小题,每小题1分,共10分): 1、C语言是计算机高级语言。( ) 2、C语言中用非零表示逻辑值“真”。( ) 3、表达式3.5+3/5的计算结果是4.1。( )
4、能够实现局部翻转(0变1,1变0)的位运算是求反。( ) 5、若有以下定义:double w[10];则w数组元素下标的上界是9。( ) 6、C语言中的简单数据类型只有整型、实型两种。( ) 7、C语言源程序的基本单位是函数。( )
8、设有语句char a=‘\\72’; 则变量a声明不合法。( ) 9、printf(\的输出结果是7。( ) 10、用在循环结构中,可以结束本次循环的语句是continue。( ) 三、 填空题(9个小题,每空2分,共20分): 1、C语言源程序文件的扩展名是____。
2、程序设计的三种基本结构是顺序结构、____、____。
3、设ch是char型变量,其值为A,且有表达式:ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch,该表达式的值为____。
4、调用C语言对字符串处理的库函数时,在#include命令行中应包含的头文件是______。 5、终止switch语句执行的语句是______。
6、用数组名作为函数参数是地址传递方式。地址传递是______(单向/双向)传递。 7、在C语言中,所谓“指针”就是______。
8、C程序的main函数是否允许有参数。____(是/否)。 9、文件打开时使用的函数是______。
四、 读下面程序,从选择项选出相应执行结果(每小题4分,共20分): 1、main()
{char a[]=\int i; p1=a;p2=b;
for(;*p1!='\\0';p1++,p2++) *p2=*p1; *p2='\\0';
printf(\for(i=0;b[i]!='\\0';i++) printf(\}
执行结果是( ) 2、main( ) { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; } }
printf(\}
执行结果是( ) 3、#define N 2 #define M N+1 main( ) { int i;
for(i=1;i<=M;i++); printf(\}
执行结果是( ) 4、main( )
{ int a[ ]={2,4,6,8,10}; int y=1,*p,x; p=&a[1];
for(x=0;x<3;x++) y+=*(p+x); printf(\}
执行结果是( )
5、#define MIN(x,y) (x)<(y)?(x):(y) main( )