. 杭州电子科技大学信息工程学院考试试卷(B)卷 考试课程 课程号 考生姓名 计算机应用基础与程序设计(C语言)2 教师号 学号 考试日期 2012年 月 日 任课教师姓名 年级 专业 成绩 说明: 请将全部答案都书写在第5页答题纸上,否则答题无效。 试题一、判断题 (共15分) (用‘√’或‘×’标注对错) 1. 定义为void类型的函数,其含义是调用函数后,被调用的函数的返回值为任意的类型。 2. C语言程序中,若实参是变量,当调用函数时实参和形参各占一个独立的存储单元。 3. 在C语言中,所有函数之间都可以相互调用。 4. 主函数main中定义的变量在其它函数中也有效。 5. 有数组定义int a[10]={1,2,3};,则a[3]的值为3。 6. 设有数组定义:char array [ ]=\则数组 array所占的空间为5个字节。 7. int N=5,a[N][N];能正确定义5×5数组a。 8. 若有定义char s1[]=”Hello”,s2[]=”world!”,则strlen(s1) + strlen(s2) 等于strlen(strcat(s1,s2))。 9. 宏定义不是C语句,不必在行末加分号。 10. 若有定义int a,*p=&a,*q=p;则p指向a,q指向p。 11. 若有定义int a,*p=&a; char *t;由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不能将p赋给t。 12. 有定义:int a[5]={1,2,3,4,5},*p=a;,语句printf(“%d”,*p++);的输出结果为2。 13. 设有语句struct ss{int x;float y;}ex; 则ss是结构体类型名。 14. 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是0。 15. 在使用fopen()函数时必须先定义一个类型为FILE的文件指针。 试题二、单选题,根据题目从A、B、C、D中,选择一个正确的选项(共25分) 1.C语言规定,在一个源程序中,main函数的位置( )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 2.C语言中函数返回值的类型是由( )决定的。 A.调用该函数的主调函数类型 B.return语句中的表达式类型 . C.定义函数时所指定的返回函数值类型 D.调用函数时临时 3.C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是 A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回给实参 D.由用户指定的传递方式 4.在C程序中,如果限定一个局部变量只能在所定义的范围中起作用,那么这个变量的存储类型( )。 A.只能是auto B.只能是extern C.可以是auto或static D.可以是extern或static 5.以下正确的函数说明是( )。 A.int fun(int , int); B.int fun(int x,y); C.int fun(x,y); D.int fun(int x; int y); 6.以下叙述错误的是( )。 A.函数调用可以是单独的语句 B.函数调用可以出现在表达式中 C.函数调用可以作为函数的实参 D.函数调用可以作为函数的形参 7.在C语言中,下面关于数组的描述正确的是( )。 A.数组的大小是固定的,但可以有不同类型的数组元素 B.数组的大小是可变的,但所有数组元素的类型必须相同 C.数组的大小是固定的,所有数组元素的类型必须相同 D.数组的大小是可变的,可以有不同的类型的数组元素 8.假定int类型变量占用4个字节,有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。 A.3 B.12 C.10 D.40 9.若有定义int b[3][4]={0};则下面正确的叙述为( )。 A.只有元素b[0][0] 可得到初值0 B.此定义语句不正确 C.数组b中各元素都可得到初值,但其值不一定为0 D. 数组b中每个元素均可得到初值0 10.若有定义int a[4][5];,则在a[2][3] 前的元素个数为( )。 A.12 B.13 C.14 D.17 11.下列程序段执行后,s的值是( )。 char ch[]=\for(i=0;ch[i]>='0'&&ch[i]<='9';i++) s=10*s+ch[i]-'0';为 A.123 B.1 C.3 D.6 12.要将20,30,40,50 存入数组b中, 下列正确的程序段是( )。 A.int i,b[4]; for (i=0; i<4; i++) b[i]=(i+2)*10; B.int b[4]; b={20,30,40,50}; C.int b[4]; b[1]=20,b[2]=30,b[3]=40,b[4]=50; D.int b[4]; b[4]={20,30,40,50}; 13.设已有定义:char *st=\下列程序段中正确的是( )。 A.char a[12], *p=a+1; strcpy(p,st+4); B.char a[12]; strcpy(++a, st); C.char a[12],*p;strcpy(p, st); D.char a[], *p=a+1;strcpy(p,&st[4]); 14.若已有定义 char str[10]; 要将键盘输入的字符串\赋给str,应使用( )。 A.scanf(\ B.gets(str); C.str=\ pear\ D.getchar(str); 15.程序中定义以下宏 . #define w 3 #define L w+4 若定义int val;且令val=L*L,则变量val的值为( )。 A.14 B.19 C.24 D.49 16.下列数组s中所存放字符串的长度为( )。 char s[ ]= \a\\\\218,0\\n\ A.6 B.7 C.8 D.9 17.执行语句“a=3; printf(\\\n\后的输出结果为( )。 A.1 B.0 C.3 D.11 18.若有int a=1,b=2,*pa=&a,*pb=&b;,执行语句*pa*=3;b*=2;printf(“%d,%d”,*pa,*pb);后输出( )。 A.1,2 B.1,4 C.3,2 D.3,4 19.若有int a=100,b=200,t,*temp,*pa=&a,*pb=&b;则下列各语句组中,不能实现变量a,b值互换的是( )。 A.t=a; a=b; b=t; B.t=*pa;*pa=*pb;*pb=t; C.temp=pa;pa=pb;pb=temp; D.a=a+b; b=a-b; a=a-b; 20.若有定义char s[20]=\则不能代表字符o的表达式是( )。 A.ps+2 B.s[2] C.ps[2] D.*(ps+2) 21.若有 char *c[]={\\则下列叙述中错误的是( )。 A.*c表示字符串\的首地址 B.c[3]表示字符串\的首地址 C.c是一个字符型指针数组 D.c是一个字符型数组 2. #include
好文档 - 专业文书写作范文服务资料分享网站