1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf

上传人:tbuqq 文档编号:5493091 上传时间:2020-05-23 格式:PDF 页数:24 大小:251.37KB
返回 下载 相关 举报
1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf_第1页
第1页 / 共24页
1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf_第2页
第2页 / 共24页
1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf_第3页
第3页 / 共24页
1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf_第4页
第4页 / 共24页
1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf》由会员分享,可在线阅读,更多相关《1253《C语言程序设计》电大期末精彩试题及其问题详解.pdf(24页珍藏版)》请在三一文库上搜索。

1、实用文档 标准文案 C语言程序设计期末综合练习题 模拟试题一 一、单选题 1在每个 C 语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。 A. main B. MAIN C. name D. function 2每个 C 语言程序文件的编译错误分为(B)类。 A. 1 B. 2 C. 3 D. 4 3字符串 “a+b=12n“ 的长度为(B)。 A. 6 B. 7 C. 8 D. 9 4在 switch 语句的每个 case 块中,假定都是以break 语句结束的,则此switch 语句容易被改 写为(D)语句。 A. for B. while C. do D. if 5在下面的

2、do-while 循环语句中,其循环体语句被执行的次数为(C)。 int i=0; do i+; while(i5)的相反表达式为((x!=0 | y void main() int i,j,k=0; for(i=0; i void main() int x=20; int i=2; while(i void main() int a8=70,63,54,95,40,75,90,66; int i, s=0; for(i=0; i=70 y+=x; return x+y; void main() int x=3, y=5; printf(“%dn“,WF(x,y); 21 5#include

3、int LA(int *a, int n) int i,s=0; for(i=0;idata; f=f-next; while(f) if(f-datax) x=f-data; f=f-next; return x; 假定 struct IntNode的结点类型定义为: struct IntNode int data; struct IntNode* next; 函数功能:求出并返回由f 所指向的单链表中所有结点的最大值。 五、按照题目要求编写程序或函数 1编写一个主函数,计算1+3+3 2 +.+3 10 的值并输出,假定分别用i,p,s 作为循环变量、累乘变量和累加 变量的标识符。 实用文

4、档 标准文案 答: #include void main() int i; int p=1; int s=1; for(i=1;i=6? 3: 8);”语句后 a 的值为( 8) 。 8. 假定一维字符指针数组的定义为“char* a5;” ,则该数组占用的存储空间的字节数为 (20) 。 9. 假定二维数组的定义为“double aMN;” ,则数组元素的行下标取值范围在 (0M-1)之间。 10. 空字符串的长度为( 0) 。 11. 在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为 12. 若 p 指向 x,则( p)与 x 的表示是等价的。 13. 直接访问表达式

5、 (*fp).score所对应的间接访问表达式为(fp-score) 。 实用文档 标准文案 三、写出下列每个程序运行后的输出结果 1#include void main() int i,s=0; for(i=1;i #define N 6 void main() int i,aN=2,5,8,10,15,21; for(i=0; i #include void main() int i; unsigned int len=0; char* a5=“student“,“worker“,“cadre“,“soldier“,“n123“; for(i=0; ilen) len=strlen(ai)

6、; printf(“len=%dn“,len); Len=7 4#include void main() int a,b; for(a=2,b=3; a void LE(int* a, int* b) int x=*a; *a=*b; *b=x; 实用文档 标准文案 void main() int x=15, y=26; LE( printf(“%d %dn“,x,y); 26 15 四、写出下列每个函数的功能 1#include int SA(int a, int b) if(ab) return 1; else if(a=b) return 0; else return -1; 函数功能:

7、判断 a 和 b 两个数的大小。若a 大于 b,返回 1;若 a 等于 b,返回 0;若 a 小 于 b,返回 -1 。 2void Output(struct IntNode *f) /f 为单链表的表头指针 if(!f) return; while(f) printf(“%d “,f-data); f=f-next; printf(“n“); 假定 struct IntNode的类型定义为: struct IntNode int data; struct IntNode* next; 函数功能:遍历输出由f 所指向的单链表中每个结点的值。 五、按题目要求编写函数 1编写一个函数,函数原型为

8、“int fun4(char* ptr);”,请采用while 循环求出由字符指针ptr所指 向的字符串中包含的小写英文字母的个数,并把这个值作为函数值返回。 答:1. int fun4(char* ptr) int n=0; while(*ptr) if(*ptr=a for(i=1;i0 while(n-) y+=3; printf(“y=%dn“,y); 运行结果: y=19 2. #include void main() int i,s=0; for(i=1;i void main() char a=“abcdbfkgamd“; int i1=0, i2=0, i=0; while(a

9、i) if(ai void main() int a8=4,8,12,16,20,24,28,32; int *p=a; do printf(“%d “,*p); p+=3; while(p struct Worker char name15; int age; double pay; void main() struct Worker a4=“abc“,20,2420,“defa“,50,3638, “ghin“,40,2560,“jklt“,36,2375; int i, s=0; for(i=0; i=b if(b=a return c; 函数功能:求出 a,b,c 三个数中的最大值并返

10、回。 2. int* LI(int n) int* a=malloc(n*sizeof(int); int i; for(i=0;i=0 scanf(“%d“, for(i=1; i0 | y=5) 的相反表达式为(B)。 A. x0 | y!=5 D. x0 ”,则 p 所指向的动态数组中所包含的元素个数 为(C)。 A. 10 B. 20 C. 30 D. 40 9十进制数 50 表示成符合 C 语言规定的八进制数为(D)。 A. 20 B. 32 C. 62 D. 062 10若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选 用的打开方式字符串为(C)。

11、A. “r+“ B. “ab+“ C. “rb+“ D. “wb+“ 二、填空题 1 在一个 C 语言程序文件中, 若要包含另外一个头文件或程序文件,则应使用的预处理命令为(#include) 。 2用于从键盘上为变量输入值的标准输入函数的函数名为(scanf ) 。 3假定一个枚举类型的定义为“enum RAab,ac,ad,ae;”,则 ac 的值为( 1) 。 4double 类型的长度为(8) 。 5执行 “ int x=45,y=13;printf(“%d“,x/y);” 语句序列后得到的输出结果为(3) 。 6把表达式x=x+y 转换成复合赋值表达式为(x+=y) 。 7假定 x

12、的值为 5,则执行 “a=(!x? 10: 20);”语句后 a 的值为( 20) 。 8假定一维字符指针数组的定义为“ char* a8; ” ,则该数组占用的存储空间的字节数为(32 ) 。 9假定二维数组的定义为“double aMN;”,则数组元素的行下标取值范围在(0M-1)之间。 10空字符串的长度为(0) 。 11在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为(0) 。 12若 p 指向 x,则(p)与 x 的表示是等价的。 实用文档 标准文案 13直接访问表达式(*fp).score所对应的间接访问表达式为(fp-score) 。 三、写出下列每个程序运

13、行后的输出结果 1#include void main() int i,j,k=0; for(i=0; i void main() int x=20; int i=2; while(i void main() int a8=76,63,54,95,40,75,90,66; int i, s=0; for(i=0; i=70 y+=x; return x+y; void main() int x=3, y=8; 实用文档 标准文案 printf(“%dn“,WF(x,y); 输出结果: 30 5. #include int LA(int *a, int n) int i,s=0; for(i=0

14、;i=k) c+; return c; 函数功能:统计并返回一维整型数组an 中大于等于 k 的值的个数。 2. void QA(struct Worker a, int n) int i; for(i=0; ix1) x1=ai; if(ai0 while(n-) y+=3+n; printf(“y=%dn“,y); 答案:y=34 25、 #include void main() int i,s=0; for(i=1;i void main() char a=“abcfkgamd“; int i1=0, i2=0, i=0; while(ai) 实用文档 标准文案 if(ai void m

15、ain() int a9=2,4,8,12,16,20,24,28,32; int *p=a; do printf(“%d “,*p); p+=3; while(p struct Worker char name15; int age; double pay; void main() struct Worker a4=“abc“,20,2400,“defa“,50,3600, “ghin“,40,2500,“jklt“,36,3200; int i, s=0; for(i=0; i=b if(b=a return c; 答案:求出a,b,c 三个数中的最大值并返回。 30、int* LI(in

16、t n) int* a=malloc(n*sizeof(int); int i; for(i=0;i=0 scanf(“%d“, for(i=1; i0 | y=5) 的相反表达式为( C )。 a. x0 | y!=5 c. x0 ”,则元素 a20 的值为( D )。 a. 6 b. 2 c. 4 d. 0 6、假定一个函数原型为“char* func(int n)”,则该函数的返回值类型为( B)。 a. char b. char* c. int* d. int 7、假定 a 为一个数组名,则元素ai的指针访问方式为( A)。 a. *(a+i) b. *a+i c. a+i d. ”,

17、则 p 所指向的动态数组中所包含的元素个数为( C)。 a. n b. 4*n c. n+1 d. n-1 9、十进制数65 表示成符合C 语言规定的八进制数为 ( B )。 a. 101 b. 0101 c. 065 d. 081 10 、若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开 方式字符串为(C )。 a. “ab+“ b. “r+“ c. “rb+“ d. “wb+“ 二、填空题(每小题2 分,共 26 分) 11 、在一个 C 语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为 #include 。 12 、用于从键

18、盘上为变量输入值的标准输入函数的函数名为scanf 。 13、假定一个枚举类型的定义为“enum RAab,ac,ad,ae;”,则 ac 的值为1 。 14 、double 类型的长度为8 。 15、执行 “int x=45,y=16;printf(“%d“,x/y);”语句序列后得到的输出结果为2 。 16 、把表达式x=x+y 转换成复合赋值表达式为x+= y。 17、假定 x 的值为 5,则执行 “a=(!x? 10: 20);”语句后 a 的值为20 。 18 、假定一维字符指针数组a 的定义为 “char* a8;”,则该数组占用的存储空间的字节数 为32 。 19、假定二维数组的

19、定义为“double aMN;”,则数组元素的行下标取值范围在0M-1 之间。 20 、空字符串的长度为0 。 21、在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为0 。 22 、若 p 指向 x,则P 与 x 的表示是等价的。 23、直接访问表达式(*fp).score所对应的间接访问表达式为fp-score 。 实用文档 标准文案 三、写出下列每个程序运行后的输出结果(每小题6 分,共 30 分) 24、#include void main() int i,j,k=0; for(i=0; i void main() int x=28; int i=2; while(

20、i void main() int a8=76,63,54,95,40,75,90,82; int i, s=0; for(i=0; i=70 y+=x; return x+y; void main() int x=5, y=8; printf(“%dn“,WF(x,y); 实用文档 标准文案 答案: 34 28、#include int LA(int *a, int n) int i,s=0; for(i=0;i=k) c+; return c; 函数功能:统计并返回一维整型数组an 中大于等于k 的值的个数。 30、void QA(struct Worker a, int n) int i; for(i=0; ix1) x1=ai; If(aix2) x2=ai; return x1-x2;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1