2018年C语言程序设计期末考试第4套
C语言程序设计-国家开放大学中央电大2018年秋季学期“本科”期未考试试题及答案

8. 在一个数组中,数组元素 a[ 目前面的元素个数为(
)。
A. i
C. i—1
B. i+l
D. 2 * i
9. 假定有一个定义语句为 "int a[lO] = {3 ,4 ,2 ,8,6} ;", 则元素 a[5] 的值为(
)。
A. o
B. 2
c. 8
D. 6
10. 若需要比较两个字符串的大小,则选用的函数是(
}
33. 执行下面程序的输出结果为(
)。
# include<stdio. h>
# define N 8
void main () {
int a[N]={3,5,8,10,15,20,32,66}; .mt.1, x;
for(i=O; i<N/2; i++) {
x=a[i]; a[i]=a[N-1-i]; a[N-1-i]=x;
)
27. 在递归函数的每次递归调用中,对于参数表中的每个形参,得到的值都相同。(
)
28. 定义结构类型的变量时,能够同时进行初始化。(
)
29. 当向字符文件输出一个换行符时,实际将输出的是回车和换行这两个字符。(
)
三
三、程序填空题(分析程序后把合适的内容填写在括号内。每小题 5 分,共 20 分)
30. 执行下面程序的输出结果为(
B. fgetsO
C. fputsO
D. fgetc() 623
三
二、是非判断题(根据叙述正确与否在其后面的括号内打对号"✓ "或 叉号 "X" 。每小题 2 分,共 30 分)
15. 在 C 语言中,每个保留字是有专门含义和作用的,不能作为一般标识符使用。(
C语言程序设计谭浩强(第四版)期末复习试题重点

第一章程序设计和C语言1.1.什么是计算机程序程序..:一组计算机能识别和执行的指令。
只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。
1.2什么是计算机语言计算机语言:人和计算机交流信息的、计算机和人都能识别的语言。
计算机语言发展阶段:机器语言(由0和1组成的指令)符号语言(用英文字母和数字表示指令)高级语言(接近于人的自然语言和数学语言)面向过程的语言(非结构化的语言、结构化语言);面向对象的语言1.3C语言的发展及其特点C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。
因此C语言问世以后得到迅速推广。
C语言主要特点:语言简洁、紧凑,使用方便、灵活。
(只有37个关键字、9种控制语句;程序书写形式自由,源程序短)运算符丰富。
(34种运算符;把括号、赋值、强制类型转换等都作为运算符处理;表达式类型多样化)数据类型丰富。
(包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型;C99又扩充了复数浮点类型、超长整型、布尔类型;指针类型数据,能用来实现各种复杂的数据结构的运算。
)具有结构化的控制语句。
(如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化;C语言是完全模块化和结构化的语言)语法限制不太严格,程序设计自由度大。
(对数组下标越界不做检查;对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用;C语言允许程序编写者有较大的自由度,因此放宽了语法检查)允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。
(C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件;这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言)用C语言编写的程序可移植性好。
武汉工程大学2019-2020学年第一学期2018级软件工程专业《C语言程序设计》期末考试

武汉工程大学2019-2020学年第一学期2018级软件工程专业《C语言程序设计》期末考试试题姓名:_________ 年级:_______级专业:_________ 学号:___________一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1. 用C语言编写的代码程序( B )A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,*b=&a; D)float *a,b=&a;4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( B )A)称为函数的直接递归调用B)称为函数的间接递归调用C)称为函数的循环调用D)C语言中不允许这样的递归调用6.以下叙述中正确的是( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);8.有以下程序(a)main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c9.有以下函数定义:(c)void fun(int n, double x) { ……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A) fun(int y,double m); B)k=fun(10,12.5) C)fun(x,n); D)void fun(n,x)10.已定义c为字符型变量,则下列语句中正确的是(c)A)c='97'; B)c="97"; C)c=97; D)c="a";11.以下能正确定义一维数组的选项是(a)A)int num[]; B) #define N 100C)int num[0..100]; D) int N=100;int num[N]; int num[N];12.以下能正确定义数组并正确赋初值的语句是(d)A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}};13.有以下程序(a)main(){ int i;for (i=0; i<3; i++)switch (i){ case 1: printf("%d ", i);case 2: printf("%d ", i);default : printf("%d ", i); }}执行后输出结果是A)011122 B)012 C)012020 D)12014.有以下程序(d)main(){ int p[7]={11,13,14,15,16,17,18}, i=0,k=0;while(i<7 && p[i]%2) { k =k+ p[i]; i++; }printf("%d\n", k);}执行后输出结果是A)58 B)56 C)45 D)2415.以下叙述中正确的是(c)A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点16.下列叙述中正确的是(d)A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型17.以下叙述中正确的是(a)A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的.基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分二、填空题1.以下程序输入3个整数值给a,b,c,变量b中的值给a,变量c中的值给b,变量a中的值给c,交换后输出a,b,c的值。
c语言程序设计(第四版)考试题

C程序设计(第四版)期末考试题本卷共有4道大题:一、单项选择题(20道小题,共20分)1、以下对C语言函数的有关描述中,正确的是()(1分)A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B、C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中2、strcpy库函数用于复制一个字符串。
若有以下定义:char*str1="copy",str2[10],*str3="hijklmn";char*str4,*str5="abcd";则对strcpy库函数的错误调用是()(1分)A、strcpy(str2,str1)B、strcpy(str3,str1)C、strcpy(str4,str1)D、strcpy(str5,str1)3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"};char*strp[4];int i;for(i=0;i<4;i++)strp[i]=str[i];若0<=k<4,下列选项中对字符串的非法引用是()(1分)A、strpB、str[k]C、strp[k]D、*strp4、以下各选项企图说明一种新的类型名,其中正确的是()(1分)A、typedef v1int;B、typedef v2=int;C、typedef v1int v3;D、typedef v4:int;5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0};int*p,i;p=a;0<i<10,则对数组元素地址的正确表示是()(1分)A、&(a+1)B、a++C、&pD、&p[i]6、C语言标准库函数"fgets(string,n,fp)"的功能是()(1分)A、从文件fp中读取长度为n的字符串存入指针string指向的内存B、从文件fp中读取长度不超过n-1的字符串存入指针string指向的内存C、从文件fp中读取n个字符串存入指针string指向的内存D、从文件fp中读取不超过长度为n的字符串存入指针string指向的内存7、以下叙述中不正确的是()(1分)A、在函数中,通过return语句传回函数值B、在函数中,可以有多条return语句C、在C中,main后的一对圆括号中也可以带有形参D、在C中,调用函数,必需在一条独立的语句中完成8、若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为()(1分)A、floatB、intC、charD、double9、以下叙述中正确的是()(1分)A、输入项可以是一个实型常量,如:scanf("%f",3.5);B、只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C、当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d);D、当输入数据时,必须指明变量地址,例如:scanf("%f",&f);10、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()(1分)A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);11、若变量都已正确定义,a=2;b=3;printf(a>b?"***a=%d":"###b=%d",a,b);则程序段()(1分)A、没有正确的输出格式控制B、输出为:***a=2C、输出为:###b=2D、输出为:***a=2###b=212、设有如下的变量定义:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C 语言语法的表达式是()(1分)A、a=a-=(b=4)*(a=3)B、x%(--3);C、a=a*3=2D、y=float(i)13、假设所有变量均为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是()(1分)A、7B、8C、9D、214、以下标识符中,不能作为合法的C用户定义标识符的是()(1分)A、ForB、printC、WORDD、sizeof15、以下合法的赋值语句是()(1分)A、x=y=100B、d--;C、x+y;D、c=int(a+b);16、在下列选项中,没有构成死循环的程序是()(1分)A、int i=100;whine(1){i=i%1001;if(i>100)break;}B、for(;;);C、int k=1000;do{k;}while(k>=1000);D、int s=36;while(s);--s;17、设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?b:d的结果为()(1分)A、4B、3C、2D、118、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;则该程序运行后,m的值是()(1分)A、4B、3C、2D、119、有定义语句:int a=4,b=5,c=6,x;,则以下选项中各程序段执行后,x的值不为6的是()(1分)A、if(a<6)x=6;else if(a<5)x=5;else x=4;B、if(a<6)x=6;if(a<5)x=4;if(b<c)x=c;C、if(a<b)x=b;if(a<4)x=4;if(c<a)x=a;D、if(c<a)x=4;else if(b<a)x=5;else x=6;20、在宏定义#define PI3.14159中,用宏名PI代替一个()(1分)A、单精度数B、双数度数C、常量D、字符串二、填空题(12道小题,共40分)1、计算机中内存储器的最小存储单位是字节,一个整数占个字节(2分)--------------------------------------------------------------------------------2、一个算法应该具有以下特点:、确定性、有零个或多个输入、有一个或多个输出、有效性(2分)--------------------------------------------------------------------------------3、唯一的一个三目运算符是(2分)--------------------------------------------------------------------------------4、printf("%5.3f\n",123456.12345);输出为(2分)--------------------------------------------------------------------------------5、描述命题“A小于B或小于C”的表达式为(2分)--------------------------------------------------------------------------------6、int i=0,s=0,a[10];while(i<10)s+=a[i++];等价于int i,s,a[10];for()(2分)--------------------------------------------------------------------------------7、已知一数组:a[0]=10,a[1]=20,a[2]=30,a[3]=40,a[4]=50,s是int型指针,s已指向a[4],现要使s指向a[2],则s=(2分)--------------------------------------------------------------------------------8、变量分为全局和局部两种,变量离开了其所定义的函数,其存储单元就会被释放。
2018c语言期末考试题及答案

2018c语言期末考试题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中的关键字?A. myVarB. intC. varD. string答案:B2. C语言中,哪个符号用于定义数组的结束?A. ;B. ,C. [D. ]答案:D3. 在C语言中,以下哪个语句是正确的打印语句?A. print("Hello, World!");B. printf("Hello, World!");C. println("Hello, World!");D. cout << "Hello, World!";答案:B...40. 在C语言中,以下哪个函数用于计算两个数的和?A. sum()B. add()C. calculateSum()D. None of the above答案:D二、填空题(每空2分,共20分)1. 在C语言中,______关键字用于定义一个函数。
答案:void 或者 int(取决于函数的返回类型)2. 一个C语言程序的执行从______函数开始。
答案:main...20. 在C语言中,______运算符用于计算两个数的乘积。
答案:*三、简答题(每题10分,共30分)1. 解释C语言中指针的概念及其用途。
答案:指针是C语言中一种特殊的变量,它存储了另一个变量的内存地址。
指针的主要用途包括动态内存分配、数组操作、函数参数传递等。
2. 描述C语言中结构体(struct)的定义和使用方式。
答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的变量组合成一个单一的类型。
定义结构体使用关键字struct,后跟结构体名称和其包含的变量列表。
使用结构体时,可以创建该类型的变量,并访问其成员。
3. 简述C语言中递归函数的概念及其应用场景。
答案:递归函数是指在函数内部调用自身的函数。
递归常用于解决可以分解为相似子问题的问题,如树的遍历、排序算法(如快速排序、归并排序)等。
大学C语言期末考试题4及答案

大学C语言期末考试题及答案(4)1、定义了一维int型数组a[10]后,下面错误的引用是_____正确答案是:Ba[0]=1;a[10]=2;a[0]=5*2;a[1]=a[2]*a[0];2、设有定义:int a=1, *p=&a; float b=2.0; char c='A';,以下不合法的运算是()正确答案是:C*p++;a——;b++;c--;3、若有定义:int x[10], *p=x;,则*(p+5)表示()正确答案是:B数组元素x[5]的地址数组元素x[5]的值数组元素x[6]的地址数组元素x[6]的值4、执行以下程序段后,y的值是( )。
int a[ ]={1, 3, 5, 7, 9} int x=0, y=1,*ptr; ptr=&a[1]; while (!x){ y+=*(ptr+x); x++; }正确答案是:C124245、下面程序的运行结果是( )。
# include <stdio。
h〉 void select(char *s){ int i,j; char *t; t=s; for(i=0,j=0;*(t+i)!=’\0';i++)if(*(t+i)〉='0’&&*(t+i)<='9'){ *(s+j)=*(t+i); j++;} *(s+j)='\0 正确答案是:DHPw19 &17HPw19 &1719176、对于下面语句描述不正确的为_____ struct Student { unsigned long id; char name[30]; char class[30];}oStu1;正确答案是:Bstruct Student为用户自定义类型Student为用户自定义类型name为结构体成员变量oStu1为结构体变量名称7、已知:char *pstr[]={”abcd",”efgh"},**p=&pstr;那么*(*(p+1)+1)的值为_____正确答案是:Cbcfg8、已知:int a[5]={0,1,2,3,4}; int *p=a; 下面的表达式不可以用来表示a[3]的是_____正确答案是:C*(a+3)*(p+3)*p+3p[3]9、 strlen(”A\0B\0C")的结果为_____正确答案是:B12310、定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为_____正确答案是:B2425281711、下面的描述错误的是_____正确答案是:C函数可以有多个形式参数函数可以没有返回值函数内可以嵌套定义函数函数可以被其他函数调用12、下面关于全局变量的描述中,错误的是_____正确答案是:C所有在函数体外定义的变量都是全局变量全局变量可以和局部变量同名称全局变量第一次被引用时,系统为其分配内存全局变量直到程序结束时才被释放13、以下关于循环的描述中,错误的是_____正确答案是:D可以用for语句实现的循环一定可以用while语句实现可以用while语句实现的循环一定可以用for语句实现可以用do…while语句实现的循环一定可以用while语句实现do…while语句与while语句的区别仅仅是关键字while的位置不同14、引用数组元素时,数组下标可以是_____正确答案是:D整型常量整型变量整型表达式以上均可15、已知:int a[5]={0,1,2,3,4}; int *p=a; 下面的表达式不能用来表示a[3]的是_____正确答案是:C*(a+3)*(p+3)*p+3p[3]16、已知:char str[10],*p=str; 下面的语句中正确的是_____正确答案是:Bstr=”ABC”;p="ABC”;*str=”ABC”;*p="ABC";17、对于下面语句描述不正确的为_____ struct Student { unsigned long id; char name[30]; char calss[30]; }oStu1;正确答案是:Bstruct Student为用户自定义类型Student为用户自定义类型name为结构体成员变量oStu1为结构体变量名称18、一个c程序的执行是从________正确答案是:A本程序的main函数开始,到main函数结束本程序文件的第一个函数开始,到本程序文件的最后一个函数结束本程序的main函数开始,到本程序文件的最后一个函数结束本程序文件的第一个函数开始,到本程序main函数结束19、若x、i、j和k都是int型变量,则计算下面表达式后,x的值为 ________ x=(i=4,j=16,k=32)正确答案是:C416325220、若有定义:int a=7;float x=2.5,y=4。
C程序设计谭浩强第四版试卷试卷及答案

一、单项选择题20题,每题2分,共40分1.一个C语言程序是由组成的;A.主程序 B.子程序 C.函数 D.过程2.判断char型变量c1是否为小写字母的最简单且正确的表达式为 ;A. 'a'<=c1<='z'B. c1>=a&&c1<=zC. 'a'<=c1||'z'>=c1D. c1>='a'&&c1<='z'3.为了判断两个字符串s1和s2是否相等,应当使用 ;A. if s1==s2B. if s1=s2C. if strcpys1,s2D. if strcmps1,s2 == 04. 设a,b都是int型变量,则表达式:a=2,b=5,a>b a++ : b++ ,a+b的值为 ;A. 7B. 8C. 9D. 25. 设x、y和t均为int型变量,则以下语句:t=x; x=y; y=t;的功能是 ;A. 把x和y按从大到小排列B. 把x和y按从小到大排列C. 无确定结果D. 交换x和y中的值6. 下面标识符中,合法的用户标识符为 ;A. PAdB.12aC.charD._int7. 循环语句whileE;中的表达式E等价于 ;A. E=0B. E=1C. E==0D. E==18. 设有以下语句,则不是对a数组元素的正确引用,其中0≤i<10;int a10 = {0,1,2,3,4,5,6,7,8,9};int p = a;供选择的答案是:A. ap-5B. &aiC. piD. a+i9. 若用数组名作为函数调用的实参,传递给形参的是 ;A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数10.下面四段程序中,不是死循环的程序段是 ;──────—───┬───────────────A.int i=100; C.int k=0;while 1 do {++k;{ i=i%100+1; } while k>=0;if i>100 ───────────────break; D.int s=3379;} │ while s;──────────┤ s++;B.for ;;;──────────┴───────────────11.在一个文件中定义的全局变量的作用域为 ;A.本程序的全部范围;B.本文件的全部范围;C.函数内的全部范围;D.从定义该变量的位置开始到文件结束; 12.下面的程序执行后,文件test.t中的内容是 ;include <stdio.h>include<string.h>void funchar fname,char st{ FILE myf;int i;myf=fopenfname,"w";fori=0;i<strlenst;i++fputcsti,myf;fclosemyf;}main{ fun"test.t","new world";fun"test.t","hello,";}Ahello, Bnew worldhello, Cnew world Dhello,world13.若有以下定义和语句int a=3,b=4, q,w,p;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是 ;A p=a;B w=p;C q=0;D p=w;14.以下语句中,指针s所指字符串的长度为 ;char s=”\\Hello\tWorld\n”;C.14 D.1015.若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数 ; A.没有返回值 B.返回若干个系统默认值C.能返回一个用户所希望的函数值 D.返回一个不确定的值16.有以下程序main{ int m3={1,4,7,2,5,8,3,6,9};int i,j,k=2;fori=0;i<3;i++printf“%d”,mki;}执行后输出结果是A. 4 5 6B. 2 5 8C. 3 6 9D. 7 8 917.下列程序的输出结果为 ;define SQRx xxmain{ int a=10, k=2, m=1;a/=SQRk+m;printf“%d\n”, a;}A. 1B. 8C. 2D. 918. 设有以下程序段:char a =”study”,p;p=a;printf“%d”,p+5;执行后的结果为:A、111B、0C、104D、不确定19.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为;{ char name20;int age;char sex;}stu5, p;p=stu;A. scanf"%s", ;B. scanf"%d", p->age;C. scanf"%c", &p->sex;D. scanf"%d", &stu0.age;20.已知static int a ={5,4,3,2,1},p ={a+3,a+2,a+1,a},q=p;则表达式:p0+1 + q +2 的值是 ; A.5 B.4 C.6 D.7二、程序填空题每空2分,共20分1、求1 + 1/2 +1/4 + 1/6 + ··· + 1/100 的值;include “stdio.h”main{ int i =2 ;float sum ;_______________;while i <=100{ sum = ____________ ;__________________ ; }printf “ sum = %f “ , sum;}2、以下程序的功能是:从键盘输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入;main{ float x1000, sum = 0.0, ave, a ;int n=0, i;printf“Enter mark:\n”;scanf“%f”,&a;whilea>=0.0 && n<1000sum =sum+a;xn=______;n++;scanf" % f ",_______;}ave= ________ ;printf“Output: \n”;printf“ave=%f\n”,ave;fori=0; i<n; i++if_________ printf"%f\n”,xi;}4、将输入的百分制成绩转换成相应的等级;100—90分为A,89—80分为B …… 60分以下为E; main{int score,temp;char grade;scanf"%d",&score;ifscore ==100temp=9;elsetemp= __________;switch ______{case 9:grade='A'; break;case 8:grade='B'; break;case 7:grade='C'; break;case 6:grade='D'; break;______________}printf "Score=%d Grade=%c\n", score, grade;三、程序阅读题每题4分,共20分1、以下程序运行后,输出结果是_______; include "stdio.h"main{ char ch='A';int x=8;while ch<='H'{ printf"%c,",ch;ch+=2;}printf"\n";do{ x--;if x%3==0 continue;printf"%d,",x;} while x>0;}2、以下程序运行后,输出结果是_______; int funcint a, int b{ static int m=0,i=2;i+=m+1;m=i+a+b;returnm;}main{ int k=4,m=1,n;n=funck, m;printf“%d, ”, n;n=funck, m;printf“%d ”, n;3、下面程序的运行结果是: ;void swapint a,int b{ int t;t=a; a=b; b=t;}main{ int x=3,y=5,p=&x,q=&y;swapp,q;printf“%d,%d\n”,p,q;}4、下面程序的运行结果是: ;include "stdio.h"main{ int i,j;char ch;fori=1;i<5;i++{ forj=1;j<20-i;j++ printf" ";ch='A';forj=1;j<=2i;j++ printf"%2c",ch++; printf"\n";}}5、以下程序运行后的输出结果是 ;int funcint a,int b{ return a+b;}main{ int x=2,y=5,z=8,r;r=funcfuncx,y,z;printf"%d\n",r;}四、编程题三题中任选两题,每题10分,共20分,1、用递归方法求n;2、从键盘输入十个数,按升序排列后输出排序的结果,请按以下要求完成,要求:1、必须用主、子函数调用完成程序;2、其中十个数的输入及排序后的结果输出在主函数中实现;3、排序功能在子函数中实现;3、从键盘输入一串字符,对其中的的字母,数字及其他字符的数目进行统计,并输出统计结果,方法不限; A卷参考答案一.单项选择题20题,每题2分,共40分1. C2. D3. D4. B5. D6. D7. C8. A9. A 10. C11.D 12. A 13. C 14. A 15. D 16. C 17.C 18. D 19. B 20. A二、程序填空题每空2分,共20分1、sum=1.0或sum=1; sum + 1.0 / i ,i = i + 2;2、a、&a、sum/n、xi<ave3、score-score%10/10;或score/10 , temp , default: grade='E';三、程序阅读题每空2分,共20分1、 A,C,E,G,7,5,4,2,1,2、8,173、3,54、 A BA B C DA B C D E FA B C D E F G H5、15四、编程题20分,任选2题,每题10分1、main 结构正确 1分{ int n,t; 变量及函数说明正确 2分long factint;scanf"%d",&n; 输入正确 1分t=factn; 调用语句正确 1分printf"\n%d",t;}long factint n 函数类型及形参正确 1分{ long s;if n==1s=1; 递归公式1正确 1分elses=nfactn-1; 递归公式2正确 2分return s; 返值正确 1分}2、main 结构正确 1分{ int a10, i ; 变量定义及函数说明正确 2分void sortint b;fori=0;i<10;i++ 输入正确 1分scanf“%d”,&ai;sorta; 函数调用及参数传递正确1分printf"\n";fori=0;i<10;i++ 输出正确 1分printf"%d, ",ai;}void sort int b 结构正确 1分{ int i,jfori=0;i<9;i++ 排序正确 3分forj=9;j>i;j--ifaj<aj-1t=aj,aj=aj-1,aj-1=t;}3、 include "stdio.h"main 结构正确 1分{char str100,st;int d,x,s,q;zm=sz=qt=0; 变量定义及初始值正确 1分getsstr; 输入正确 1分forst=str;st='\0';st++ 循环参数参数设置正确 2分 ifst>='a'&&st<='z'||st>='A'&&st<='Z'zm=zm+1;else ifst>='0'&&st<='9'sz++;else ++qt; 统计正确 3分printf"ZM=%d, SZ=%d, QT=%d",zm,sz,qt 输出正确 2分。
c语言模拟题目第四套

第四套若有说明:int a[3][4];则数组a中各元素()。
A、不能得到确定的初值B、可在程序的编译阶段得到初值0C、可在程序的运行阶段得到初值0D、可在程序的编译或运行阶段得到初值0【参考答案】错误A【学生答案】[未答此题]已定义float a; int i;选择正确的输入语句( ).A、scanf("%6.2f%3d", &a,&i);B、scanf("%f%s", &a,&i);C、scanf("%6f%3d",&a,&i);D、scanf("%f%d", a,i);【参考答案】错误C【学生答案】[未答此题]执行下面程序段后,k的值是:( )int k=2;switch(k+1){case 3:k+=1;case 4:k--;break;case 5:k*=3;case 6:++k;}A、10B、2C、28D、27【参考答案】错误B【学生答案】[未答此题]执行下列语句后的输出为()。
int j=-1;if(j<=1) printf("****\n");else printf("%%%%\n");A、%%%%B、****C、有错,执行不正确D、%%%%c【参考答案】错误B【学生答案】[未答此题]以下程序段中,能够正确地执行循环的是( )。
A、int s=6; m:if(s<100) exit(0); else s-=2; goto m:B、int s=6; do s-=2; while(s);C、for(i=1;i>10;i++)D、static int a; while(a)【参考答案】错误B【学生答案】[未答此题]运行结果是" 11 12"的程序段是:请在A处填写正确内容( )。
for(i=1;i<=2;i++)___A___A、for(j=1;j<=2;j++)printf("%3d",10*i+j);break;B、{for(j=1;j<=2;j++)printf("%3d",10*i+j);break;}C、for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;D、{for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;}【参考答案】错误B【学生答案】[未答此题]对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018年秋季学期A卷、考试、机试、闭卷(第04套)
C语言程序设计
命题教师:农国才阳建中刘顺黄瑜适用班级:计科本、物联本18级
答卷说明:1.本试卷共 3 页,4 个大题,满分100分,时间120分钟。
2.准带的用具或资料:
试卷套号:学号:姓名:班别:
答题要求:1. 选择题请在手机上完成答题,并将答题结果填写在指定空格处);2.程序题⑴请将题目给定的源程序复制粘贴到编译器中;⑵并对程序进行修改、编译、调试、运行;⑶将修改好的源程序存放在考生文件夹中,文件名为“学号_姓名.cpp”(例如:1704412147_王明.cpp);⑷将修改的内容填写到指定答题处,将运行结果截图粘贴答题处。
一、选择题(本大题共20小题,每小题2分,共40分。
1-5:6-10:11-15:15-20:
二、程序填空题(本大题共4个空,每空4分,运行结果正确4分,共20分)
本程序的功能:验证任何一个正整数的立方均可表示成一串连续奇数之和。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
给定源程序:
#include<stdio.h>
/**********found**********/
(1)N30
int main()
{ inti,j,n,k,m,max,sum,a[N];
printf(“Please enter a interger:”);
scanf(“%d”,&n);
m=n*n*n;
for(i=1;;i=i+2)
{
/**********found**********/
(2);
for(k=i;sum<m;k+=2)
sum+=k;
/**********found**********/
if((3))
{for(j=i;j<=k;j+=2)
a[(j-i)/2]=j;
/**********found**********/
max=(4);
break;}
}
printf(“%d^3=”,n);
for(i=0;i<max;i++)
printf(“%d+”,a[i]);
printf(“%d”,a[max]);
return 0;
}
三、程序改错题(本大题共有4处错误,每处4分,运行结果正确4分,共20分)
本程序的功能:取出一个十进制正整数中的所有偶数数字,用这些数字构成了一个最大数。
例如,由123456中取出2、4、6,组成最大数字642。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
/**********found**********/
#include N 10
int main()
{ inti,j,k=0,t,d,a[N];
longn,m=0;
printf(“请输入一个整数:”);
/**********found**********/
scanf(“%f”,&n);
while(n>0)
{ t=n%10;
n=n/10;}
for(i=0;i<k-1;i++)
{d=i;
for(j=i+1;j<k;j++)
/**********found**********/
if(a[j]<=a[d]) d=j;
if(d!=i)
{t=a[d];a[d]=a[i];a[i]=t;}
}
for(i=0;i<k;i++)
/**********found**********/
m=m/10+a[i];/*此处功能是4,2,6变成整数642*/
return 0;
}
四、编程题(本大题共20分,程序补充部分16分,运行结果4分)
编写程序:求一个圆柱体的表面积和体积。
调用函数area求面积,bulk求体积。
注
#include<stdio.h>
#define PI 3.14
float area(float r,float b)
{
}
float bulk(float r,float h)
{
}
int main()
{ floatr,h;
printf(“please input r and h:\n”);
scanf(“%f,%f”,&r,&h);
printf(“%f,%f”,area(r,h),bulk(r,h));
return 0;}。