1、1暨南大学 20202021 学年第 2 学期C 语言程序设计考试试卷(语言程序设计考试试卷(B 卷)卷)考试范围:C 语言程序设计;满分:100分;考试时间:120 分钟院/系:_专业:_姓名:_ 考号:_题号一二三四总分得分注意事项:1答题前填写好自己的姓名、班级、考号等信息2请将答案正确填写在答题卡上第第 I 卷(选择题)卷(选择题)评卷人得分一、选择题(共一、选择题(共 20 题,每题题,每题 2 分,共分,共 40 分。下列每小题的四个分。下列每小题的四个选项中,有一项是最符合题意的,错选、多选或未选均无分)选项中,有一项是最符合题意的,错选、多选或未选均无分)1当变量 c 的值不为
2、 2、4、6 时,值也为“真”的表达式是()。A(c=2)|(c=4)|(c=6)B(c=2&c=2&c=2&c=6)&(c%2!=1)2有以下程序:#include main()FILE*fp;int a=1,2,3,i,n;fp=fopen(d1.dat,w);for(i=0;i3;i+)fprintf(fp,%d,a);fprintf(fp,n);fclose(fp);fp=fopen(d1.dat,r);fscanf(fp,%d,&n);fclose(fp);printf(%dn,n);程序的运行结果是()。A123002B123C1D3213有如下程序:#include#includ
3、e struct Schar name;main()struct S s1,s2;strcpy(s1.name,12345);strcpy(s2.name,ABC);s1=s2;printf(%sn,s1.name);程序运行后的输出结果是()。AABC12BABC45C12345DABC4有以下程序:#includemain()int s=1,2,3,4,5,6,*ps,k;for(k=0;k3;k+)ps=s;printf(%d,*(ps+1);程序的运行结果是()。A246B135C123D4565有以下程序#includeint fun()static int x=1;x+=1;3re
4、turn x;main()int i,s=1;for(i=1;i=5;i+)s+=fun();printf(%dn,s);程序运行后的输出结果是()。A11B21C6D1206有以下程序:#includeint fun(int a,int b)if(b=0)return a;else return(fun(-a,-b);main()printf(%dn,fun(4,2);程序运行的结果是()。A1B2C3D47有如下程序:#includevoid get_put()char ch;ch=getchar();if(ch!=n)get_put();putchar(ch);main()get_put
5、();程序运行时,输入 ABCD,则输出结果是()。ADCDCBDCBACBABADABCD48有以下程序:#includemain()printf(%dn,NULL);程序运行后的输出结果是()。A0B变量无定义,输出不确定C-1D19读取二进制文件的函数调用形式为“fread(buffer,size,count,fp);”,其中 buffer 代表的是()。A一个内存块的首地址,代表读入数据存放的地址B一个整型变量,代表待读取的数据的字节数C一个文件指针,指向待读取的文件D一个内存块的字节数10有以下程序:#include void fun(int a,int n)int i,j=0,k=
6、n/2,b;for(i=n/2-1;i=0;i-)b=a;b=a;j+=2;k+;for(i=0;in;i+)a=b;main()int c=10,9,8,7,6,5,4,3,2,1,i;fun(c,10);for(i=0;i10;i+)printf(%d,c);printf(n);程序的运行结果是()。A2,4,6,8,10,9,7,5,3,1,B10,8,6,4,2,1,3,5,7,9,C1,2,3,4,5,6,7,8,9,10,5D1,3,5,7,9,10,8,6,4,2,11设有定义 int a;和函数调用语句 sort(a,3);则正确的函数声明是()。Avoid sort(int
7、a,n);Bvoid sort(int a,int n);Cvoid sort(int a,int n);Dvoid sort(int a,n);12有以下程序:#include main()int i,array=3,5,10,4;for(i=0;i5;i+)printf(%d,array&3);printf(n);程序运行后的输出结果是()。A3,1,2,0,0,B3,5,10,4,0,C3,3,3,3,0,D3,2,2,2,0,13C 语言程序中,运算对象必须是整型数的运算符是()。A&B/C%D*14以下叙述中正确的是()。AC 程序的基本组成单位是语句BC 程序中的每一行只能写一条语
8、句C简单 C 语句必须以分号结束DC 语言必须在一行内写完15以下叙述中错误的是()。A一个 C 程序可以包含多个不同名的函数B一个 C 程序只能有一个主函数CC 程序在书写时,有严格的缩进要求,否则不能编译通过DC 程序的主函数必须用 main 作为函数名16以下叙述正确的是()。AC 编译程序把文件后缀为.c 的源程序文件编译成文件后缀为.obj 的二进制文件BC 编译程序把文件后缀为.c 的源程序文件编译成文件后缀为.exe 的可执行文件CC 编译程序把文件后缀为.obj的二进制文件编译成文件后缀为.exe 的可执行文件D链接程序把文件后缀为.c 的源程序文件链接成文件后缀为.exe 的
9、可执行文件17以下叙述中错误的是()。AC 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令6BC 程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中DC 语言源程序经编译后生成后缀为.obj的目标程序18算法具有五个特性,以下选项中不属于算法特征性的是()。A有穷性B简洁性C可行性D确定性19若有定义和语句:char s;s=abcd;printf(%sn,s);,则结果是()。A输出 abcd#$B输出 aC输出 abcdD编译不通过20以下选项中正确的语句组是()。Ach
10、ar s;s=BOOK!;Bchar*s;s=BOOK!;Cchar s;s=BOOK!;Dchar*s;s=BOOK!;第第 II 卷(非选择题)卷(非选择题)评卷人得分二、填空题(共二、填空题(共 3 题,每题题,每题 8 分,共分,共 24 分)分)21下面程序的功能是键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件 test.txt 中,然后从该文件读出字符串并显示出来。#include main()char str100;int i=0;FILE*fp;if(fp=fopen(test.txt,)=NULL)printf(Cant open the file.n
11、);exit(0);printf(Input a string:n);7gets(str);while(stri)if(stri=a&stri=z)stri=;fputc(stri,fp);i+;fclose(fp);fp=fopen(test.txt,);fgets(str,strlen(str)+1,fp);printf(%sn,str);fclose(fp);22下面的函数 sum(int n)完成计算 1n 的累加和。sum(int n)if(n=0)printf(data errorn);if(n=1);else ;23下面程序的功能是实现数组元素中值的逆转。#include mai
12、n()int i,n=10,a10=1,2,3,4,5,6,7,8,9,10;invert(a,n-1);for(i=0;i10;i+)printf(%4d,ai);printf(n);invert(int*s,int num)int*t,k;t=s+num;while()k=*s;*s=*t;*t=k;8评卷人得分三、改错题(共三、改错题(共 1 题,每题题,每题 16 分,共分,共 16 分)分)24给定程序 MODI1.C 中函数 fun 的功能是:先将 s 所指字符串中的字符按逆序存放到 t所指字符串中,然后把 s所指串中的字符按正序连接到 t 所指串的后面。例如:当 s所指的字符串为
13、:“ABCDE”时,则 t 所指的字符串应为:“EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序如下:#include#include void fun(chars,chart)/*found*/int i;i=0;s1=strlen(s);for(;is1;i+)/*found*/t=s;for(i=0;is1;i+)t=s;t=0;main()char s,t;printf(nPlease enter string s:n);scanf(%s,s);fun(s,t);printf(The res
14、ult is:%sn,t);评卷人得分四、设计题(共四、设计题(共 1 题,每题题,每题 20 分,共分,共 20 分)分)25某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。例如,学生的成绩是:,76,85,91,72,,则他的平均分应为。9【标准答案】第第I卷(选择题)卷(选择题)一、选择题(共一、选择题(共20题,每题题,每题2分,共分,共40分。下列每小题的四个选项中,有一项是最符合题分。下列每小题的四个选项中,有一项是最符合题意的,错选、多选或未选均无分)意的,错选、多选或未选均无分)1B2B3D4A5B6B7B8A9A10A11C12A13C14C15C16A17A18B19D20D第第 II 卷(非选择题)卷(非选择题)二、填空题(共二、填空题(共 3 题,每题题,每题 8 分,共分,共 24 分)分)21 w -32 r22 return(1)return(sum(n-1)+n)23 save=;for(i=0;iave=a-ave+a-si;/*求各门成绩的总和*/a-ave/=N;/*求平均分*/