C电大语言程序设计A复习资料一

上传人:hao****an 文档编号:98140872 上传时间:2022-05-28 格式:DOC 页数:12 大小:56.51KB
收藏 版权申诉 举报 下载
C电大语言程序设计A复习资料一_第1页
第1页 / 共12页
C电大语言程序设计A复习资料一_第2页
第2页 / 共12页
C电大语言程序设计A复习资料一_第3页
第3页 / 共12页
资源描述:

《C电大语言程序设计A复习资料一》由会员分享,可在线阅读,更多相关《C电大语言程序设计A复习资料一(12页珍藏版)》请在装配图网上搜索。

1、C语言程序设计A复习资料一一、单选题 1. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 2. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。 A. 12 B. 144 C. 156 D. 28 3. 带有随机函数调用的表达式rand()%20的值在( )区间内。 A. 119 B. 120 C. 019 D. 020 4. for循环语句“for(i=0; in; i+=2) S;”中循环体S语句被执行的次数为( )。 A. (n+1)/2 B. n/2+1 C. n/2-1 D. n-1

2、 5. 在下列的字符数组定义中,存在语法错误的是( )。 A. char a20=abcdefg; B. char a=x+y=55.; C. char a15=1,2; D. char a10=5; 6. 若有一个函数原型为“double *function()”,则它的返回值类型为( )。 A. 实数型 B. 实数指针型 C. 函数指针型 D. 数组型 7. 在C语言中,所有预处理命令都是以( )符号开头的。 A. * B. # C. & D. 8. 假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p+后,p所指数据单元的值为( )。 A. 40 B. 30 C

3、. 70 D. 10 9. 若要使p指向二维整型数组a1020,则p的类型为( )。 A. int * B. int * C. int *20 D. int(*)20 10. 表示文件结束符的符号常量为( ) A. eof B. Eof C. EOF D. feof 二、填空题 1一个函数定义由_和函数体两部分组成。 2. 执行“printf(%c,F-2);”语句后得到的输出结果为_。 3int类型的长度为_。 4. 表达式(float)25/4的值为_。 5若x=5,y=10,则x=y的逻辑值为_。 6. 作为语句标号使用的case和default只能用于_语句的定义体中。 7. 在程序中

4、执行到_语句时,将结束所在函数的执行过程,返回到调用该函数的位置。 8. 假定二维数组的定义为“char aMN;”,则该数组所含元素的个数为_。 9. 存储字符a需要占用存储器的_个字节空间。 10. 用于存储一个长度为n的字符串的字符数组的长度至少为_。 11. 假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式(*p)+后,p所指对象的值为_。 12. 假定p是一个指向整数对象的指针,则用_表示该整数对象。 13假定一个结构类型的定义为“struct Bint a5; char* b;”,则该类型的理论长度为_。 三、写出下列每个程序运行后的输出结果 1. #include

5、 void main() int i, s1=0, s2=0; for(i=0;i10;i+) if(i%2) s1+=i; else s2+=i; printf(%d %dn,s1,s2); 2. #include const int M=20; void main() int i=2; while(1) if(iM/2) break; if(M%i=0) printf(%d ,i); i+; printf(n); 3. #include int a6=4,5,6,15,20,12; void main() int i,s1,s2; s1=s2=0; for(i=0; i6; i+) swi

6、tch(ai%2) case 0: s2+=ai;break; case 1: s1+=ai;break; printf(%d %dn,s1,s2); 4. #include void main() int a33=3,5,7,9,11,13,6,8,20; int i,*p=&a00; for(i=0;i10) printf(%d ,*p); p+; printf(n); 5. #include #include struct Worker char name15; int age; float pay; void main() struct Worker x; char *t=liouti

7、ng; int d=38; float f=400; strcpy(x.name,t); x.age=d; x.pay=f; x.age+; x.pay*=2; printf(%s %d %6.2fn,x.name,x.age,x.pay); 四、写出下列每个函数的功能 1. #include int SA(int a, int b) if(ab) return 1; else if(a=b) return 0; else return -1; 函数功能: 2. void Output(struct IntNode *f) /f为单链表的表头指针 if(!f) return; while(f)

8、 printf(%d ,f-data); f=f-next; printf(n); 假定struct IntNode的类型定义为: struct IntNode int data; struct IntNode* next; 函数功能: 五、按题目要求编写程序或函数 6. 编写一个程序,计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。6. 根据函数原型“int FF(int a, int n)”,编写函数定义,计算并返回数组an中所有元素之和。参考答案一、单选题 1. B 2. C 3. C 4. A 5. D 6. B 7. B 8. A

9、 9. D 10. C二、填空题 1. 函数头 2. D 3. 4 4. 6.25 5. 1 6. switch 或开关 或分情况 7. return 或返回 8. M*N 9. 1 10. n+1 11. 26 12. *p 13. 24三、写出下列每个程序运行后的输出结果评分标准:根据答案正确程度酌情给分。 1. 25 20 2. 2 4 5 10 3. 20 42 4. 11 13 20 5. liouting 39 800.00四、写出下列每个函数的功能评分标准:根据答案叙述的正确与完善程度酌情给分。 1. 比较两个整数a和b的大小,若ab则返回1,若a=b则返回0,若ab则返回-1。

10、 2. 遍历并输出由f所指向的单链表中每个结点的值。 五、按题目要求编写程序或函数评分标准:按程序或函数编写的正确与完整程度酌情给分。1. #include void main() int i; int p=1; int s=1; for(i=1;i=10;i+) p*=3; s+=p; printf(%dn,s); 2. int FF(int a, int n) int i,sum=0; for(i=0; i0 | y=5的相反表达式为( )。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 4. 枚举类型中的每个枚举常量的值都是一个( )。 A. 整数 B. 浮

11、点数 C. 字符 D. 逻辑值 5. 循环语句“for(int i=0; in; i+) S;”中循环体S被执行的次数为( )。 A. 1 B. n-1 C. n D. n+1 6. 在下面的while循环语句中,其循环体被执行的次数为( )。 int i=0,s=0; while(sname等价的表达式是_。三、写出下列每个程序运行后的输出结果 1. #include void main() int i, s=0; for(i=1;i+) if(s50) break; if(i%2=0) s+=i; printf(i,s=%d, %dn,i,s); 2. #include void main

12、() char ch=*; int i, n=5; while(1) for(i=0;in;i+) printf(%c,ch); printf(n); if(-n=0) break; 3. #include void main() int x=24,y=88; int i=2,p=1; do while(x%i=0 & y%i=0) p*=i; x/=i; y/=i; i+; while(x=i & y=i); printf(%dn,p*x*y); 4. #include void main() int a9=36,25,48,24,55,40,18,66,20; int i, b1, b2;

13、 a0=a1? (b1=a0, b2=a1):(b1=a1,b2=a0); for(i=2; i9; i+) if(aib1) b2=b1; b1=ai; else if(aib2) b2=ai; printf(%d %dn,b1,b2); 5. #include void main() int a=10, b=20; printf(%d %dn,a,b); int b=a+25; a*=4; printf(%d %dn,a,b); printf(%d %dn,a,b); 6. #include void SelectSort(int a, int n) int i,j,k,x; for(i=

14、1;in;i+) /进行n-1次选择和交换 k=i-1; for(j=i;jn;j+) if(ajak) k=j; x=ai-1; ai-1=ak; ak=x; void main() int i; int a6=20,15,32,47,36,28; SelectSort(a,6); for(i=0; i6; i+) printf(%d ,ai); printf(n); 7. #include void LE(int* a, int* b) int x=*a; *a=*b; *b=x; void main() int x=15, y=26; printf(%d %dn,x,y); LE(&x,

15、&y); printf(%d %dn,x,y); 8. #include #include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; int Equal(struct Worker* r1, struct Worker* r2) if(strcmp(r1-name, r2-name)=0) return 1; else return 0; void main() struct Worker a4=abc,25,420,defa,58,638, ghin,49,560,jklt,36,375; struct Work

16、er x=defa; int i; for(i=0; i=4) printf(没有查找所需要的记录!n); else printf(%s %d %6.2fn,ai.name,ai.age,ai.pay); 四、写出下列每个函数的功能 1. int SE(int n) /n为大于等于1的整数 int x,s=0; printf(输入%d个整数: ,n); scanf(%d,&x); if(n=1) return x; s=x; while(-n) scanf(%d,&x); s+=x; return s; 2. #include void WA(int a, int n) int i,k,j,x

17、; for(i=0;in-1;i+) k=i; for(j=i+1;jak) k=j; x=ai; ai=ak; ak=x; 3. #include int* LJ(int a, int n) int i,k=0; for(i=1;iak) k=i; return &ak; 4. int Output(struct IntNode *f) int sum=0; if(!f) return -9999; /用返回特定值-9999表示空表 while(f) sum+=f-data; f=f-next; return sum; 假定struct IntNode的类型定义为: struct IntNo

18、de int data; /结点值域 struct IntNode* next; /结点指针域 ; 5. int wr4(FILE* fptr) char ch; int c=0; fseek(fptr,0,SEEK_SET); while(1) ch=fgetc(fptr); if(ch!=EOF) c+; else break; return c; 五、根据下列每个题目要求编写程序 1. 编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a44中,接着求出主对角线上元素之和,最后返回求和结果。 2. 编写一个主函数,计算1+3+32+.+310的值并输出,假定

19、分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。 3. 编写一个主函数,已知6a40,15b30,求出满足不定方程2a+5b=120的全部整数组解。如(13,20)就是其中的一组解。参考答案一、选择题1. C 2. D 3. B 4. A 5. C 6. C 7. B 8. A 9. C 10. A 11. D 12. A 13. C 二、填空题1. /* 2. 程序 3. weirong18 4. C 5. 2 6. float7. 33 8. (!x)9. 1 10. if11. continue 12. M*N13. 2 14. 长度15. 实参 16. 程序文件17. *(a

20、+i) 18. *p 19. struct Worker* r 20. (*p).name三、写出下列每个程序运行后的输出结果 1. i,s=15, 56 2. * * * * * 3. 264 4. 18 20 5. 10 20 40 35 40 20 6. 15 20 28 32 36 47 7. 15 26 26 15 8. defa 58 638.00四、写出下列每个函数的功能1. 求出从键盘上输入的n个整数之和并返回。2. 采用选择排序的方法对数组a中的n个整数按照从大到小的次序重新排列。3. 求出数组a中n个元素的最大值元素,返回该元素的地址4. 对于以表头指针为f的链表,求出并返

21、回所有结点中data域的值之和。5. 求出一个以fptr为文件流的所对应文件的长度,即所存字符的个数。五、根据下列每个题目要求编写程序1. double fun() double a44; double s=0; int i,j; printf(输入一个4*4的数值矩阵:n); for(i=0;i4;i+) for(j=0;j4;j+) scanf(%lf,&aij); for(i=0;i4;i+) s+=aii; return s; 2. #include void main() int i; /用i作为循环变量 int p=1; /用p作为累乘变量 int s=1; /用s作为累加循环变量 for(i=1;i=10;i+) p*=3; s+=p; printf(%dn,s); 3. #include void main() int a,b; for(a=6;a=40; a+) for(b=15;b=30;b+) if(2*a+5*b=120) printf(%d, %d)n,a,b);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!