当前位置:文档之家› 2016 年天津市大学软件学院高职升本专业课试题 C语言部分(含答案)

2016 年天津市大学软件学院高职升本专业课试题 C语言部分(含答案)

考场号
Байду номын сангаас
2016 年天津市大学软件学院高职升本专业课试题 考生号 姓名 第一部分 C 语言部分 100 分
一、单项选择题(共 20 小题,每题 2 分,共 40 分) 以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表” 对应的格中,未填入答题表,错选或多选均不得分。 1. C 语言规定,在一个 C 程序中,主函数的位置 A. 必须在最后 B. C. 可以任意 D. 2. 下列 4 组用户标识符中,其中合法的一组是 A. A P_0 do B. C. float 1a0 _A D. 3. 下列四个选项中,合法的 C 语言关键字选项是 A. goto B. C. printf D. 4. 下列不正确 的初始化语句是 ... 必须在系统调用的库函数的前面 必须在最开始 xyz DO st_name _123 temp int include Switch
1
10. 若有如下语句 int x=3; do { printf("%3d",x-=2);} while(!(--x));} 则上面程序段的输出结果是 A. 1 -2 B. 1 C. 3 0 D. 死循环 11. 以下程序的输出结果是 #include <stdio.h> main() { int a=2,b=-1,c=2; if(a<b) if(b<0) c=0; else c++; printf("%d\n",c); } A. 2 B. 3 C. 1 D. 0 12. 有以下函数定义:void fun(int y,double x){ …… },若以下选项中的变量都已正确定义并赋值, 则对函数 fun 的正确调用语句是 A. fun(20,1,5); B. k=fun(20,1.5); C. fun(int y,double x); D. void fun(20,1.5); 13. 有以下程序,程序运行的输出结果是 #include <string.h> #include <stdio.h> main() { char p[20]={'E','F','G','H'},q[]="EFGH",r[]="EFGHI"; strcat(p,r);strcpy(p+strlen(q),q); printf("%d\n",strlen(p)); } A. 9 B. 11 C. 6 D. 8 14. 以下正确定义一维数组的选项是 A. int a[5]={0,1,2,3,4,5}; B. int a[5]="ABC"; C. char a={'A','B','C'}; D. char a[]={'0','1','2','3','4','5','\0'}; 15. 以下程序的输出结果是 #inclue <stdio.h> main() { int i,f1=1,f2=1; for(i=0;i<3;i++) { printf("%d %d ",f1,f2); f1=f1+f2; f2=f1+f2 } } A. 1 2 3 4 5 6 B. 1 1 3 5 7 9 C. 1 1 2 3 5 8 D. 1 3 5 7 9 11
3
二、填空题(共 10 空,每空 1 分,共 10 分) 请按照试题中对应的标号顺序填写到答题表中 1. 若有定义 int x=2,y=3,z=4;则执行 x+=y+=z;后表达式 x<y?y:x 的值为 。 2. 每个 C 源程序无论由多少个函数组成,都有一个且只能有一个 。 3. 若有定义语句 char ch[3][10]={ "hello","my","world"};则语句 printf("%s",ch[2]);的结果为 。 4. 若有定义语句 int a=3,*p1=&a,**p2=&p1;则*p1+**p2 的值为 。 5. C 语言一般使用 语句从被调函数返回一个函数值给主调函数。 6. 设 int i;,执行 for(i=1;i==10;i++) continue;后,循环体被执行的次数是 。 7. 已知字符'a'的 ASCI 码值为 97,如有语句 char ch[]="abc",*p=ch;printf("%d\n",*(p+2)); 的输出结果为 。 8. scanf()函数是一个标准库函数,对该函数进行说明的头文件是 。 9. 若有定义语句 struct student { char name[10];int score; }s[5]={{"MARY",98},{"JACK",66}}; 则元素 s[1].score 的值为 。 10. 若有定义语句 int *p,a[]={2,4,6,8,10};p=&a1;则 p[0]+p[2]的值为 。
三、判断题 判断下题是否正确,正确的划√,错误的划×(每题 1 分,共 15 分) 1. ( )在 C 语言中,字符型数据在内存中存储其 ASCII 码。 2. ( )用 scanf()函数为 3 个整型变量赋值,其语句 scanf("%d,%d,%d",&a,b,c); 3. ( )C 语言中符号惯用小写字母,但不区分大小写字母。 4. ( )getchar()和 putchar()用于字符型数据的输入输出。 5. ( )若有 int i=50,j=2;则执行完 i*=j+8;后 i 的值为 108。 6. ( )与表达式 exp 等价的表达式是 exp!=0。 7. ( )若有说明 int a[2][2]={0};则该数组 a 所有元素的初值均为 0。 8. ( )C 函数可以嵌套定义也可以递归调用。 9. ( )若有定义 int s[2][3]={1,2,3,4,5,6},*p=s[1]+2;则语句 printf("%d",*p);的结果为 6。 10. ( )若有定义 int a=90;double b=2.0;float c=1;char k='0';则表达式 a/b+c-k 值的类型为 double。 11. ( )break 语句用于循环体中,可结束本层循环,continue 语句用于循环体中,可结束本次循环。 12. ( )为表示关系表达式 x≥y≥z 应使用 C 语言表达式(x>=y)||(y>=z)。 13. ( )尽管 main()函数不被任何函数调用,但它也可以带参数。 14. ( )C 语言中的变量按作用域分为两种:即局部变量和全局变量。 15. ( )若有定义 int (*p)();,则 p 是一个函数名,该函数的返回值是指向 int 型数据的指针。
4
四、阅读程序题 本题共 5 小题,每小题 5 分,共 25 分,请写出程序的运行结果 1. 【程序】 #include <stdio.h> main() { int a[2][3]={{1,2,3},{-10,5,10}}; int i,j,m; m=a[0][0]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(a[i][j]>m) m=a[i][j]; printf("m=%d\n",m); } 【运行结果】
2
16. C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是 A. 地址传递 B. 由用户指定传递方式 C. 有实参传给形参,再由形参传给实参 D. 值传递 17. 有以下程序: #include <stdio.h> void ss(char *s,char t) { while(*s) { if(*s==t) *s=*s-'a'+'A'; s++; } } main() { char str1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%s\n",str1); } 程序运行后的输出结果是 A. ABCDDFEFDBD B. abcDDfefDbD C. abcAAfefAba D. Abcddfefdbd 18. 设有以下说明语句: struct ex { int x; float y; char z; } example; 则下面的叙述中不正确 的是 ... A. struct 是结构体类型的关键字 B. example 是结构体类型名 C. x,y,z 都是结构体成员名 D. struct ex 是结构体类型名 19. 若有以下定义语句: double r=99,*p=&r;*p=r; 以下说法正确的是 A. 以上两处的*p 含义相同,都说明给指针变量 p 赋值 B. 赋值语句“*p=r;”取变量 r 的值放回 r 中 C. 赋值语句“*p=r;”取变量 r 的值付给指针变量 p D. 在“double r=99,*p=&r;”中,把 r 的地址赋给 p 所指的存储单元 20. 以下程序的输出结果是 #include <stdio.h> int fun(int x) { int y=1; static int z=4; z+=1; ++y; return (x+y+z); } main() { int i; for(i=1;i<=3;i++) printf("%3d",fun(i)); } A. 8 9 10 B. 8 10 12 C. 7 8 9 D. 7 9 12
相关主题