2016 年天津市大学软件学院高职升本专业课试题 C语言部分(含答案)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
5
4. 【程序】 #include <stdio.h> main() { int a=15,b=21,m=0; switch(!(a%3)) { case 0:m++;break; case 1:m++; switch(b%2) { case 0:m++;break; case 1:m++; } } printf("%d\n",m); } 【运行结果】 5. 【程序】 #include <stdio.h> void fun(int *a,int n)/*fun 函数的功能是将 a 所指数组元素从大到小排序*/ { int t,i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t; } } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},i; fun(a+4,5); for(i=0;i<10;i++) printf("%d,",a[i]); printf("\n"); } 【运行结果】 五、编程题 本题共 1 小题,10 分 1. 统计 10 个学生成绩的平均分,并输出低于平均分的人数。 (1) 学生的成绩要求通过键盘输入; (2) 函数的调用和结果的输出由主函数 main 处理; (3) 统计计算过程在自定义函数 tj 中完成。 例如:若输入 10 个学生的成绩为:100 90 80 80 90 70 65 70 80 83<CR> CR 表示回车 程序的输出应为:The result is: 3
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. 【程序】 #include <stdio.h> int f(int x) { if(x==0||x==1) return 3; else return x*x-f(x-2); } main() { printf("%d\n",f(3)); } 【运行结果】
3. 【程序】 #include <stdio.h> main() { int x=8; for(;x>0;x--) { if(x%3) { printf("%d ",x--);continue; } printf("%d ",--x); } } 【运行结果】
5.
6.
7.
8.
9.
A. char ch=65+30; B. char ch='C+D'; C. char ch='\0'; D. ch='\n'+'6'; 下列表达式为 0 的是 A. 4&&0||2 B. 5>3&&2||8<10+10 C. 'c'&&'d' D. f=8>7>1 下列程序的输出结果是 #include <stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) main() { int i1,i2; i1=f(2); i2=f(1+1); printf("%d %d\n",i1,i2); } A. 12 12 B. 11 7 C. 11 11 D. 12 7 若有说明语句:char c='\123';,则变量 c A. 包含 2 个字符 B. 包含 3 个字符 C. 包含 1 个字符 D. 说明不合法,c 的值不确定 已知 int t=0; while(t==0) { …… },则以下叙述正确的是 A. 循环控制表达式的值为 0,不能进入循环 B. 循环控制表达式的值为假,不能进入循环 C. 循环控制表达式不合法 D. 循环控制表达式的值为 1,可以进入循环 若有以下定义:char s[20]="programing",*ps=s;则不能 代表字符'r'的表达式是 .. A. s[1] C. ps[1] B. *++p D. ps+1
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
考场号
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
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 型数据的指针。