2011年福建省高职高专升本科入学考试
软件工程
计算机科学与技术 专业知识试卷
数字媒体艺术
第一部分 C语言程序设计(共100分)
一、 单项选择题(本大题共30小题,每小题2分,共60分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。
1. 以下C语言标识符正确的是( A ) a) _sum_b_1 b) #abc c) 3_sum d) total num 2. 以下程序的输出结果是( C ) void main() { int x,y; float z; x=2;y=10; z=x/y; printf(“%f”,z); }
a) 0.200000 b) 0.2 c) 0.000000 d) 0 3. 以下程序的执行结果是( D ) void main() { int x,y,z; x=1;y=1;z=1; z+=++x+y++;
printf(“%d,%d,%d”,x,y,z); }
a) 1,2,4 b) 2,1,4 c) 2,2,5 d) 2,2,4
4. 以下用N-S图表示的求10!算法正确的是( A )
a) b) c) d)
5. 下面不正确的赋值语句是( C )
a) x=y==z; b) x=(y=(z=0)); c) x=x+y=1 d) ++x; 6. 以下选项填入划线部分,输出结果不是b的是( B ) void main() {
char a; ;
printf(“%c”,a) }
a) a=’b’; b) a=”b”; c) a=98; d) a=0x62; 7. 已知float x=12.38,y=12.62;int z;下面语句错误的是( B )
a) z=(int)x/y b) z=int(x+y) c) z=(int)x+y d) z=(int)(x+y) 8. x为int类型变量,则语句x+=x*=(x=2*3,x-2);执行后x的值为( C )a) 12 b) 24 c) 48 d) 72 9. 有以下程序段: int m=0,n=0;char c;
scanf(“%d%c%d”,&m,&c,&n); printf(“%d,%c,%d\\n”,m,c,n);
程序输出结果是:1,X,2.则从键盘上可能的输入是( A ) a) 1X2 <回车> b) 1 X 2<回车> c) 1,X,2<回车>
d) 1<回车>X<回车>2<回车>
10. 以下不能正确进行字符串赋初值的语句为( B ) a) char str[]=”Hello!”; b) char str=”Hello!”; c) char *str=”Hello!”;
d) char str[6]={‘H’,’e’,’l’,’l’,’o’};
11. 语句if(3/4>1/2)a=1;else a=0;运行后,a的值是( B ) a) 1 b) 0 c) 与机器有关 d) 语法错误
12. 设a为整型变量,不能正确表示数学关系11&&a<4 d) !(a<=1)&&!(a>=4) 13. 以下能正确定义一维数组的选项是( D ) a) int s[5]=”12345”
b) int s[5]={1,2,3,4,5,6}; c) char s={‘X’,’Y’,’Z’}; d) char s[]={1,2,3,4,5,6};
14. 若有定义:int a[8];则以下表达式中不能代表数组元素a[1]的地址的是(a) a+1 b) &a[1] c) &a[0]+1 d) a[0]++ 15. 以下程序执行后sum的值是( D ) main() {
int i,sum;
for(i=0;i<5;i++) {
) D ) sum+=i;
printf(“%d\\n”,sum); } }
a) 0 b) 10 c) 15 d) 不确定 16. 以下程序的运行结果是( B ) #define f(x) x*x void main() {
int i; i=f(4+4)/2
printf(“%d\\n”,i); }
a) 16 b) 22 c) 24 d) 32
17. 若要打开当前目录下名为test.txt的文本文件进行读,写操作,下面符合此要求的函数调用的是( C )
a) fopen(“text.txt”,”r”); b) fopen(“text.txt”,”rb”); c) fopen(“text.txt”,”r+”); d) fopen(“text.txt”,”w”);
18. 以下程序的执行结果是( B ) #include
int c; c=a+b; return c; }
main () {
Int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--); printf(“%d\\n”,r); }
a) 20 b) 21 c) 22 d) 31 19. 对于以下程序段,运行后i值为( C ) int i=1,a=2; switch(a) {
case 2:i+=1;
case 3:i+=2;break; default:i+=3;}
a) 2 b) 3 c) 4 d) 7
20. 以下程序求至10之间偶数的和,请选择正确选项填空完成程序( C )
main() {
int sum=0,i;
for(i=1;i<=100;i++) { sum+=i; }
printf(“%d\\n”,sum); }
a) if(i%2)continue; b) if(i%2!=0)break; c) if(i%2==0)continue; d) if(i%2==0)break;
21. 下列程序中的变量已正确定义,要求程序段完成求10!(阶乘)的计算,不能完成此操作的程序段是( b ) a) for(i=1,p=1;i<=10;i++)p*=i; b) for(i=1;i<=10;1++){p=1;p*=i;} c) i=1;p=1;while(i<=10){p*=i;i++;} d) i=1;p=1;do{p*=i;i++;}while(i<=10);
22. 设变量定义如下,则对其中的结构分量num正确的引用是( A ) struct student {
int num;
char name[20]; float score; }stud[10];
a) stud[1].num=50; b) student.stud.num=50; c) struct.stud.num=50; d) struct.student.num=50; 23. 设函数fun的定义形式为: void fun(float x,char y){?},
则以下对函数fun的调用语句中,正确的是( C ) a) fun(3.3,Q);
b) t=fun(3.5,’a’); c) fun(65,65);
d) fun(1.0,”tty”);
24. 以下程序运行后的输出结果是( C ) main() {
int a[7]={1,2,3,4,5,6,7},*s=&a[1],*p=s+3; printf(“%d\\n”,*++p); }
a) 4 b) 5 c) 6 d) 7
25. 以下程序运行后输出的结果是( C ) #include
void f(int *p,int q) {
*p=4; q=20; }
main() {
int p=1; int q=10; f(&p,q);
printf(“%d,%d\\n”,p,q) }
a) 1,10 b) 1,20 c) 4,10 d) 4,20 26. 若有以下说明和定义: typedef char *CHAR; CHAR s,*p
以下叙述正确的是( B ) a) s是char型变量
b) s是类型为char的指针变量 c) p是类型为char的指针变量
d) 程序中可用CHAR代替char类型名 27. 下面程序的运行结果是( b ) typedef union {
Long id; Long len;
Float price[3]; Char name[8]; }DATA
void main() {
DATA x[2];
printf(“%d\\n”,sizeof(x)); }
a) 2 b) 24 c) 28 d) 56 28. 以下程序的输出结果是( A ) main() {
Int **s,*p,x=32; P=&x;s=&p;
Printf(“%d\\n”,**s); }
a) 32 b) x的地址 c) p的地址 d) 运行错误