C电大语言程序设计A复习资料一_第1页
C电大语言程序设计A复习资料一_第2页
C电大语言程序设计A复习资料一_第3页
C电大语言程序设计A复习资料一_第4页
C电大语言程序设计A复习资料一_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、. 在下列的字符数组定义中,存在语法错误的是(A. char a20=abcdefgB. 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. 70

3、D. 109. 若要使 p 指向二维整型数组 a1020 ,则 p 的类型为( )。 A. int * B. int * C. int *20 D. int(*)2010. 表示文件结束符的符号常量为()A. eof B. Eof C. EOF D. feof二、填空题1 一个函数定义由 和函数体两部分组成。2. 执行“ printf(%c,F-2) 。”语句后得到的输出结果为 。3 int 类型的长度为 。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。 。”,则该类型的理论长度为 。三、写出下列每个程序运行后

5、的输出结果1. #includevoid 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. #includeconst 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. #includeint a6=4,5,6,15,20,12。void main()int i,s1,s2。s1=s2=0。for(i=0。 i6 。 i+) swit

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

7、 d=38 。 float f=400 。 strcpy(,t) 。 x.age=d。 x.pay=f 。x.age+。 x.pay*=2 。printf(%s %d %6.2fn,,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) prin

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

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

10、所指向的单链表中每个结点的值。五、按题目要求编写程序或函数评分标准:按程序或函数编写的正确与完整程度酌情给分。1.#includevoid 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!=5B. x0 | y!=5D. x0 & y=54. 枚举类型中的每个枚举常量的值都是一个( )。A. 整数 B. 浮点数C. 字符 D. 逻辑值5.

11、循环语句“ for(int i=0 。 in 。 i+) S 。”中循环体 S 被执行的次数为 ( ) A. 1 B. n-1 C. n D. n+16. 在下面的 while 循环语句中,其循环体被执行的次数为( )。int i=0,s=0。 while(sname 等价的表达式是 。三、写出下列每个程序运行后的输出结果1. #includevoid 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. #includevoid main() char ch=*

12、。int i, n=5。while(1) for(i=0 。 in 。 i+) printf(%c,ch) 。printf(n) 。if(-n=0) break。3. #includevoid 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。a0=a1? (b1=a0

13、, 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=1。 in 。 i+) /

14、进行 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. #includevoid 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,&y) 。

15、printf(%d %dn,x,y)。8. #include#includestruct 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,375struct Worker x=defa。i

16、nt i 。for(i=0 。 i=4) printf( 没有查找所需要的记录 !n) else printf(%s %d %6.2fn,,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. #includevoid WA(int a, int n) int i,k,j,x。for(i=0 。 in

17、-1 。 i+) k=i 。for(j=i+1 。 jak) k=j 。x=ai 。 ai=ak。 ak=x 。3. #includeint* 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 IntNode int da

18、ta。/结点值域struct IntNode* next。/ 结点指针域5. int wr4(FILE* fptr)char 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+.+3 10的值并输出,假定分别用i,p,s 作

19、为循环变量、累乘变量和累加变量的标识符。3. 编写一个主函数,已知6W aw 40,15 b 30,求出满足不定方程2a+5b=120的全部整数组解。如 (13,20) 就是其中的一组解。参考答案一、选择题I. C2. D 3. B 4. A 5. C6. C7. B8. A9. C10. AII. D 12. A 13. C二、填空题I. /*2.程序3. weirong18 4. C5. 26. float7. 338. (!x)9. 110. ifII. continue12. M*N13. 214.长度15. 实参16.程序文件17. *(a+i)18. *p19. struct Worker* r 20.(*p).name三、写出下列每个程序运行后的输出结果1.1, s=15, 562.*3.2644.18 20

温馨提示

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

评论

0/150

提交评论