C语言复习资料答案.doc_第1页
C语言复习资料答案.doc_第2页
C语言复习资料答案.doc_第3页
C语言复习资料答案.doc_第4页
C语言复习资料答案.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

C语言复习题一填空题1、一个C程序由若干函数构成,其中有且只能有一个 main(主) 函数。2、C语言中的基本数据类型有整形、字符型、 实型(浮点型) 和 枚举型 。3、若变量a是数字字符,将其转换成相应的数值用什么语句 int a=a-48 。4、将数学表达式 y=sin(ax)+In(a+x)+e(ax)写成C语言表达式为 y=sin(a*x)+log(a+x)+exp(a*x) 。5、设x、t均为int型变量,则执行语句“x=10;t=x&x10;”后,t的值为 0 。 6、若有定义struct stchar name20; float score; int age;;则sizeof (struct st ) 为 26 。 7、在C语言中,关键字都用( 小写 )大写或小写;C语言是通过有且仅有一个( 主函数执行 )。8、C语言中构造类型数据有哪三种:( 数组 )、( 共用体 )、( 结构体 )。9、若k=sizeof(int),I=sizeof(float),则k=( 2 ),I=( 4 )。10、符号&是( 逻辑与 )运算符,&a是指( a的首地址 )。11、能表述20x30或x20&x30|x=0)&(c1=0)&(c1=9)C.0=c1=0)|(cl=9)7、设有如下枚举类型定义:enum languageBasic,Assembly,Ada=100,COBOL,Fortran;请问枚举变量Assembly的值是( A )。 (A)1 (B)0 (C)101 (D)997、执行语句for(i=0;i1O;i+);后,变量i的值为( A )A. 1O B . 9 C . O D . 18、下列语句的循环次数为( A )int x=5;while(x)x-;break;A. 1 B . 5 C . 6 D . 无限次三程序阅读题1、写出下面程序运行的结果: 11,19,30,1 void main()int a=10,b=20,c=30,d; d=+a=20 | c+ ; printf(“%d,%d,%d,%dn”,a,b,c,d);2、写出下面程序运行的结果: 3,1,0,0 void main()int a=1,b=2,c=3; printf(“%d,%d,%d,%dn”,a=b=c,a=b=c,a=(b=c),a=(b=c);3、下列程序的功能是计算1-3+5-7+-99+101的值,请在_处填空。main() int i , t = 1 ,s = 0; for ( i = 1 ; i =0_;k-) if(akak-1)_temp=ak_; ak=ak-1; ak-1=temp;else break ;for(k=0;_k=8_;k+) printf(“%7d”,ak);5、下列程序的功能是将字符串s中所有的空格字符删去,请在_处填空。main() char *s = “Our teacher teaches C language” ; int i , j ; for ( i=j=0 ; si !=0 ; i+ )if ( si != ) sj+ = si; _else sj=0_ ; printf (“%sn”,s); 6、下面程序运行的结果是_x1=10 x2=25 x=100_。static int x=5;void main () void f1(); void f2(); int x=10;f1();f2();printf(“x(1)=%dn”,x);void f1() x+=20; printf(“x(2)=%d,”,x);void f2() int x=100; printf(“x(3)=%d,”,x);7、函数mm用来求阶乘,请将程序补充完整:void main() long s=0,i,mm(int k); for(i=1;i11;i+)s=s+mm(i); printf(“%ld”,s);long mm(int k) long t=1,j; for(j=1;j=k;j+) t=t*j ; return(t) ; 8、程序实现给数组a赋值,并通过指针的方式输出数组a的值,请将程序补充完整。void main() int a6,i; _int *p_; for(i=0;i6;i+) scanf(“%d”,_&ai_); p=a; for(i=0;i6;i+) printf(“%3d”,_*(p+i)_); printf(“n”);四编程题1、 从键盘输入一个正整数n,求n!#include long fact(int n);void main()int n;printf(Enter a integer:n);scanf(%d,&n);printf(n!=%l,fact(n);long fact(int n)long p = 1;int i;for(i=1; i = n; i+)p = p*i;return p;#include void main() int n,i;long int t=1;scanf(%d,&n);for(i=1;i=n;i+)t=t*i;printf(%d!=%ldn,n,t);2、输出100999内的所有水仙花数。水仙花数是指3位数的各位数字的立方和等于这个位数本身。例如,153=1*1*1+5*5*5+3*3*3#include int narcissus(int n);void main()int i;for(i=100; i=999;i+)if( narcissus(i) = 1)printf(%8d,i);printf(n);int narcissus(int n)int k,m,j;k = n/100; /hundrends placem = (n%100)/10;j = n%10;if ( k*k*k + m*m*m + j*j*j)= n)return 1;elsereturn 0;3、 一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出15000中的所有完数。#include int completeNum(int n);void main()int i;for(i=1; i=5000; i+)if( completeNum(i) = 1)printf(%8d,i);printf(n);int completeNum(int n)int k,s=1;for( k=2; kn; k+)if ( n%k = 0)s += k;if( s = n)return 1;elsereturn 0;4、有定义int a10=10,2,4,1,3,7,9,5,6,8;请用选择排序法将数组a中的元素按升序排列,并输出排序后的结果#include void selectSort(int a, int n);void main()int a10 = 10,2,4,1,3,7,9,5,6,8;int i;selectSort(a,10);for(i =0; i10; i+)printf(%4d, ai);void selectSort(int a, int n)int i,j,k,temp;for(i=0; in; i+)k = i;for(j = i+1; j aj)k = j;if( k !=i)temp = ak;ak = ai;ai = temp;5、 从键盘输入两个整数m和n,编程求m和n的最大公约数以及最小公倍数。#include int div(int m, int n);int mul(int m, int n);void main()int m, n;int d, p;printf(Enter two integers( suppose mn), seperated by space:n);scanf(%d %d,&m,&n);printf(The greatest common divisor of %d and %d is: %dn, m, n, div(m,n);printf(The least common multiple of %d and %d is: %dn, m, n, mul(m,n);int div(int m, int n)int r= m%n;while( r0)m = n;n = r;r = m%n;return n;int mul(int m, int n)return m*n/div(m,n);6、请编写函数 sum(a,n), 求 sn=a+aa+aaa+.+aa.aa(n个a) 的值,并在主函数中调用该函数。其中 a 是一个数字. 例如, 若a=2, n=5时: Sn=2+22+222+2222+22222, 其值应为24690. 根据下列已完成的部分, 完成未完成部分(注: 在函数 sum 中不能定义新的变量, 可不用已定义的某些变量).long sum(int a, int n) long sn, tn; int count; .; return(sn);#include long sum(int a, int n);void main()int n;long k = sum(2,5);printf(sum(2,5)=%ldn,k);long sum(int a, int n)long sn=0, tn=a;int count,i;for(i=1; i=n; i+)sn += tn;tn = tn*10 + a;return sn;7、 编程求一个学生n门课程的平均成绩。#include #define N 10void main()int i,n,s=0;int scoreN;printf(Enter numbers of classes:n);scanf(%d,&n);printf(Enter classes scores:n);for( i = 0; i n; i+)scanf(%d, &scorei);s += scorei;printf(Average s

温馨提示

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

评论

0/150

提交评论