C语言程序设计考前复习资料

上传人:ta****u 文档编号:199131550 上传时间:2023-04-10 格式:DOCX 页数:29 大小:69.58KB
收藏 版权申诉 举报 下载
C语言程序设计考前复习资料_第1页
第1页 / 共29页
C语言程序设计考前复习资料_第2页
第2页 / 共29页
C语言程序设计考前复习资料_第3页
第3页 / 共29页
资源描述:

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

1、二级C语言笔试试卷(2009第一次)(共100分) 注意事项:1.一、二题为客观题,请将答案涂在机读答题卡上2. 三、四、五、六题为主观题,请将答案做在答题纸上一. 单项选择题。(每小题1分,共20分)1一个C程序的执行是从(A )。(A) 本程序的main函数开始,到main函数结束(B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C) 本程序的main函数开始,到本程序文件的最后一个函数结束(D) 本程序文件的第一个函数开始,到本程序main函数结束2. 设x、y和z是int型变量,且x = 3, y = 4, z = 5,则下面表达式中值为0的是 ( D )。(A) x

2、 & y;(B) x = y;(C) x | y + z & y - z ;(D) ! (xy) & ! z | 1);3. 以下有关宏替换的叙述不正确的是( D )。(A )宏替换不占用运行时间(B)宏名无类型(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的4. 已知函数的调用形式:fread ( buffer , size , count , fp );其中 buffer 代 表的是( C )。(A) 一个整型变量,代表要读入的数据项总数(B) 个文件指针,指向要读的文件(C) 一个指针,指向要读入数据的存放地址(D) 个存储区,存放要读的数据项5. 在位运算中,操作数每左移一位,

3、其结果相当于 ( A )。(A)操作数乘以2(B)操作数除以2(C)操作数除以4(D)操作数乘以46数字字符0的ASCII值为48,若有以下程序#includestdio.hvoid main()char a=,1,,b=,2,;prin tf (%c,b+);pri ntf (%dn,b-a);程序运行后的输出结果是(C )。A)3,2B)50,2C)2,2D)2,507有以下程序#includeb&b+c&+c 后,a,b,c 的值 分别为(B )。A) 3 4 5B) 4 3 5C) 4 4 4D) 4 4 511. 已知:int x = 1, y = 2, z =0;则执行:z = x

4、y?10:2 0 后,z 的值为(B )。A) 10 B) 20C) 1D) 212. 若已定义x和y为double类型,则表达式x=2, y=x+10/4的值是(C )。A) 2 B) 4 C) 4.0 D) 4.513有定义语句:int b;char c10;,则正确的输入语句是(B )。 A)scanf(%d%s, &b, &c);B)scanf(%d%s,&b, c);C)scanf(%d%s,b,c);D) scanf(%d%s,b, &c);14. 在一个源程序文件中定义的全局变量,其作用域为(B )。A)定义所处的整个源程序文件 B)从定义处开始到本源程序文件结束C)整个主函数D

5、)所处C程序的所有源程序文件中15. 在下面C语言的函数说明语句中,正确的是(A )。A) int fun(int x, int y); B) int fun(int x,y);C) int fun(x,y);D)int fun(int x; int y);16. 有以下程序#includestdio.hvoid main()int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,& p);pri ntf (%d%d%dn,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456, p中的值为789,则 正确的输入是(A )。A) m=123n=456p=78

6、9B) m=123 n=456 p=789C) m=123,n=456,p=789D) 123 456 78917. 已知E的ASCII码是69,则执行以下语句的结果是(C)printf(%c,E-8+5);A)66 B)AC)BD)E18. 有定义:char *s=t” NameAddressn;,那么 strlen(s)等于(B )。A) 15B) 16C) 17D) 1819. 设有定义:intm=1,n=T;则执行语句printf(%dn,(m&+n);后的输出结果是 ( B )A) - 1 B) 0 C) 1 D) 220. 有以下程序#includestdio.hvoid main

7、()int a,b,d=25;a=d/10%9;b=a& (-1);pri ntf (%d,%dn,a,b);程序运行后的输出结果是(B )。A)6,1B)2,1C)6,0D)2,0二. 基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号 码填入各小题的空白处。每空2分,共10分)1. 函数 main(int argc,char *argv)中 argc 表示的是。2在C语言中,没有字符串变量,只有字符变量,字符串都存储在 为结束符的字符数组中。3. 个函数调用语句为fun(e1,e2,e3),(e4,e5),e6);,其实参个数为。4. 为了避免嵌套的if-else语句的

8、二义性,C语言规定else总是与组成配对关系。5当程序打开一个文件时,系统就要在内存中建立一个与该文件对应的 结构 体变量,存储该文件的有关信息。 F B J A K备选项:(A) 空格(B) 0(C)n(D)在其之前未配对的if(E) 参数字符串(F)命令行参数的个数(G) 6(H) 在其之前最近的未 配对的if(J)3(K)FILE(L)EOF(M)命令行参数的字符数三.程序填空题。(每空2分,共20分)。1. 以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩。请填 空。#includevoid main()float sum=0.0,ave,a;int n=0;prin

9、tf(Enter markn); scanf(%f,&a);while(a=0.0)sum=sum+a;/n+ scanf(%f ,& a);ave=sum/n;printf(ave=%fn,ave);2. 下面程序的功能是将一个字符串str的内容颠倒过来,请填空。#includevoid main()char str=abcdefg;char *p1,*p2,ch;p1=str;p2=str;while(*p2!=0)p2+; ;/p2while(p1p2)ch=*p1;*p1=*p2;*p2=ch; _;/p1+p2;puts(str);3. 以下程序中,fun函数的功能是求m行4列二维数

10、组每行元素中的最大值。请填空。#includeint fun(int,int,int(*)4);void main()int a34=12,41,36,28,19,33,15,27,3,27,19,1,i;for(i=0;i3;i+)printf(%4d,fun );/ i,4,aint fun(int m,int n,int a4)int j,x;x=am0;for(j=0;jn;j+)if) x=amj;/ xamjreturn x;4. 下面的程序是用来在数组table中查找x,若数中存在x程序输出数组中第一个等 于x的数组元素的下标,否则输出-1。请填空。#includestdio.h

11、int table10=12,34,54,23,45,33,78,87,59,97,x;int lookup(int t,int key,int n)int k;for(k=0;kn;k+)if(tk=key); /breakif()k=-1;/ k=nreturn k;void main()scanf(%d,&x);printf(x_location:%dn,lookup(table,x,10);5. 下列函数insert实现在一维数组v中插入一个元素x,且要求将该元素插入到下标 为i位置,数组原有下标为i及以后的元素都将向后移动一个元素的位置i=0。如果i大 于等于元素的个数,则x插到数组

12、的末尾。原有的元素个数存放在指针n所指向的变量中, 插入后元素个数加1。主函数验证了该函的功能。请填空。#includestdio.hvoid insert(int v,int *n,int x,int i);void main()int a20=1,2,3,4,5,6,7;int key=11;int n=7,*p=&n;insert(a,p,key,14);for(key=0;key*p;key+)printf(%d ,akey); putchar(n);printf(%dn,n);void insert(int v,int *n,int x,int i)int j;if( )/i*nfo

13、r(j=*n-l; j=i;)/j=vj;/vj+1elsei=*n;vi=x;(*n)+;四阅读程序题(每小题5分,共30分)1下面程序的运行结果为:( f=6)#include stdio.hint f(int num,int run)static int fact,i;if(run=0)fact=1;i=1;fact *=i; if(+i=num)f(num,1);return(fact);void main()int i=0; printf(f=%dn,f(3,0);2下面程序的运行结果是:( 6 3 ) #includestdio.hmain()int a=1,3,5,7,9,b4=

14、2,4,6,8,*p=a,*q=b;p+=2;q+; *p=(*q)%3+5;*(+q)=*(p-)-3;printf(%d ,*(p+1);( -1396 )3运行程序时输入-6931,则输出结果是 #includevoid printopp(long int n)int i=0; if(n=0)return;else while(n) if(n0|i=0) printf(%1d, n%10); elseprintf(%ld,-n%10); i+;n/=10; void main()long int n; scanf(%ld,&n); printopp(n); printf(n);4下面程序

15、的运行结果是: ( 34 ) #include#define N 2#define Y(n) (N+1)*n) main()int z; z=2*(N+Y(5); printf(%d,z);5以下程序的运行结果为( 9 ) #include void main()long fun(int n);long fun(int n)long s; if(n=1|n=2) s=2;else s=n+fun(n-1);return s;6. 以下程序的运行结果为(4321 ) #include void main()void fun(int *x,int *y);int a=1,2,3,4,j,x=0;

16、for(j=0;j4;j+) fun(a,&x); printf(%d,x); printf(n);void fun(int *x,int *y)static int t=3; *y=xt;t-;五.编程序(每小题10分,共20分)的前20项之和。2 3 5 8 13 211.编写程序求下面数列,牙,1 2 3 5 8 13参考程序:#includemain()double x,sum; int i;for(i=1,x=2,sum=0;i=20;i+) sum=sum+x;x=1+1/x;pri ntf(Front 20 t erms of 2/1+3/2+5/3+=%lfn,sum);2.

17、函数fac的原型为long fac(int k);,函数利用静态变量实现:连续以1,2,3,n为参数调用该函数后,函数最后返回n!。要求编制该函数并用相应的主函数进行测试。参考程序:#include void main()long fac(int n);int n,j;long ff; scanf(%d,&n);for(j=2;j=n;j+) ff=fac(j);printf(n!=%ldn,ff);long fac(int n)static long ff=1;ff*=n;return ff;二级C语言笔试试卷(A) ( 2008年第一次)(共100分) 注意事项:1.一、二题为客观题,请将

18、答案涂在机读答题卡上2. 三、四、五、六题为主观题,请将答案做在答题纸上一、单项选择题。(每小题1分,共20分)1. C语言源程序由预处理命令和()组成。(A)函数语句(0保留字(D)标始符2. 下面程序段中,与if(x%2)中的x%2所表示条件等价的是()。scanf(%d,&x);辻(x%2) x+;(A)x%2=0(B) x%2!=1(C) x%2!=0(D) x%2=13. 执行下面的C语句序列后,变量b的值是()。int a,b,c; a=b=c=1; +a|+b&+c;(A)错误 (B)0(C)2(D) 14. 设有C语句int a34;,则每次移动过a数组一行元素的指针变量定义形

19、式是()。(A)int *p;(B)int *p;(A) int(B) float(C) double(D)不能确定5.设有整型变量a,实型变量f,双精度型变量x,则表达式10+b+x*f值的类型为()。6. C语言中规定,在函数的参数表电用简单变量做实参时,它和对应形参之间的数据传递方式是( )。(A)地址传递(C )有实参传给形参,再由形参传回给实参7.下面程序的输出是( )。#include void main()(B)单向值传递(D)由用户指定传递方式int x=10,y=3; printf(%dn,y=x/y);(A)0(B)1(C)3(D)不确定的值8.执行下面的程序段后,B的值为

20、()。int x=35;char z=A;int B;B=(x&15 )& (za);(A) 0(B) 1(C) 2(D) 39以下程序的输出结果为()。#include stdio.hvoid main() int i=0; for(;)if(i+=5)break; printf(%dn,i);(A) 0(B) 5(C) 6(D)前3个选项都错10.已知:char s4 = cba; char *p;执行语句序列 p = s;printf(%cn,*p+l);后,其输出为()。A)cB) bC) aD) d11.运行完下列程序后,在屏幕上的内容是()。#include stdio.hvoid

21、 main()int a=0;a+=a=12;printf (%dn,a);A)0B)6C)1212.已知:int x = 1, y = 2,D) 24z =0则执行 z=xy?(10+x,10-x):(20+y,20-y)后,z 的值为( )。A) 11 B) 9C) 18D) 2213. 若已定义x和y为double类型,则表达式x=2, y=x+10/4的值是()。 A) 2 B) 4 C) 4.0 D) 4.514. 以下程序的输出结果是() #include int x=3,y=4;void main( ) int x=0; x+=y+; printf(%d,x);A) 3B) 4C

22、) 5D) 615. 在下面C语言的函数说明语句中,正确的是()A) int fun(int x, int y); B) int fun(int x,y);C) int fun(x,y);D)int fun(int x; int y);16. 有定义:int x,y=10,*p=&y;,则能使得x的值也等于10的语句是()。A) x=p;B) x二&p;C) x二&y;D) x=*p;17. 有定义:int a54, (*p)4=a;,贝lJ*(*(p+2)+3)等于()。A) a20 B) a21 C) a22D) a2318. 有定义:char* s=tNameAddress;,那么 st

23、rlen(s)等于()。A) 15B) 16 C) 17D) 1819设有定义:int m=1,n=-1;则执行语句printf (%dn,(m&+n);后的输出结果是() A) - 1B) 0C) 1D) 220.设有C语句:struct T int n; double x; d,*p;,若要使p指向结构体变量中的 成员n,正确的赋值语句是()。(A)p=&d.n(B)*p=d.n(C)p=(s truct T *)& d.n(D)p=(s truct T *)d.n二. 基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入 各小题的空白处。每空2分,共10分)1.

24、C语言源程序由预处理命令和函数组成,无论有多少个函数,只能有一个主函数,其函数名是。2. 表达式 x*=x+b 等价于表达式。3在C语言中语句是一条限定转移语句,其语句功能为提前结束本次循环体的执行过程而直接进入下一次循环。4. 结构体数据类型仍然是一类变量的抽象形式,系统不会为数据类型分配存储空间。要使用结构体类型数据,必须要。5. 调用feof来判断文件是否结束,如果已经读到结束则其返回值是:。备选项:(A)void(B)x=x*x+b(C)continue(D)x=x*(x+b)(E)break(F)定义结构体成员(G)定义结构体类型变量(H)定义联合体类型变量(1)0(J)非 0(K)

25、main(L)goto K D C G J三. 程序填空题。(每空2分,共20分)。1. 程序的功能是:统计输入的字符串中小写字母的个数. #includemain()char c;int num=0;while(c=getchar()!) if(cz) continue;printf(%dn,num); n num+;2. 下面程序的功能是输出数组中的各字符串,请填空完成程序。#include void main()char * a=abcd,12345,efghijk,67890;int j=0;for(; ;j+)puts( 一); j4 *(a+j)3. 下面程序用于计算1+ (1+2

26、) + (1+2+3) + (1+2+3+10),请完善程序。#includevoid main()int total,sum,m,n;total=0;for(m=1;m=10;m+)sum=0;for(n=1; ;n+)sum二sum+n; : printf(total=%dn,total); n=m total+=sum;4. 函数fun的功能是判断一个3位整数的个位数字和百位数字之和是否等于其十位上的数 字,是则返回yes!,否则返回no!,请填空完成函数。#include fun(in t n)int g,s,b;g=n%10; s=n/10%10;b=n/100; if(g+b)=s

27、). return yes;elsereturn ;void main()int n;scanf(%d,&n); printf(%sn,fun(n); char * no5. 下面程序的功能是打印出整数11000中满足条件:个位数字的立方等于其本身的所有数 请填空完成程序。#include void main() int i,g; for(i=1;i1000;i+)g=;if( )pri ntf (%4d,i); printf(n); i%10; g*g*g=i四. 阅读程序题(每小题5分,共30分 1下列程序的运行结果是(1 2 3 )。#include void main()void ad

28、d();int i;for(i=0;i3;i+)add();void add()static int x=0;x+;printf (%d ,x);2以下程序的输出结果为 ( 4 ) #include void main()int a,b,c,x; a=b=c=0;x=35;if(!a) x-;else if(b); if(c)x=3;elsex=4; printf(%dn,x);3以下程序的输出结果为 (max=10,row=2,colum=1 #include void main()int i, j, row, colum, max;int a34 = 1,2,3,4,9,8,7,6,-10

29、,10,-5,2; max = a00;for( i=0;i=2;i+) for(j=0;jmax) max = aij;row = i; colum = j;colum );printf( max=%d,row=%d,colum=%dn, max, row, 4下面程序的执行结果是(t=3)。#include#define Min(x,y) (x)(y)?(x):(y)void main()int a=1,b=2,c=3,d=4,t; t=Min(a+b,c+d)*1000; printf(t=%dn,t);5. 以下程序的运行结果是(4321 )#include void fun(int

30、x)putchar(0+x%10);if(x/10)fun(x/10);void main()int m=1234;fun(m);putchar(n);6. 以下程序的运行结果是(s=15)#include void main()int a=1,3,5;int s=1,j,*p=a;for(j=0;j3;j+)s*=*(p+j);printf(s=%dn,s);五、编程序。(每小题10分,共20分)1编程序实现功能:一个正整数与3的和是5的倍数,与3的差是6的倍数,求出符合此 条件的最小正整数。参考程序:#includevoid main()int i;for(i=3;i+)if(i+3)%5

31、=0 & (i-3)%6=0)printf(%dn,i);break;2编写一个函数reverse(s)将字符串s中的字符位置颠倒过来。例如,字符串“abcdefg” 中的字符位置颠倒后变为“gfedcba”。并编写一个主函数来验证该函数的功能。参考程序:#include#includevoid reverse(char s)int i,j;char c;for(i=0,j=strlen(s)-1;i0(B) a!=0(C) a=0(D) a03. 循环语句 for(a=0,b=0;(b!=45)|(a5);a+);的循环次数是()(A) 4(B) 3(C) 5(D)无数多次4. 设有字符数组

32、a,则正确的输入语句是()。(A) get s(a);(B) scanf(%c,a);(C) scanf(%s,a);(D) get s(a);5. enum colorred,green,yellow=5,whi te,black定义了一枚举类型。编译程序为值表中 各标识符分配的枚举值依次为( )。A) 1、 2、 3、 4、 5B) 0、 1、 5、 2、 3C) 0、 1、 5、 6、 7D) 3、 4、 5、 6、 76. 运行完下列程序后,在屏幕上的内容是()。 main () int a=0;a+=(a=12);printf (%dn,a);A) 0 B) 6 C) 12 D) 2

33、47若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式()A) x=y;B) x_y=0;C) fabs(x-y)le-8;D)labs(x-y)a)D) (p+)-a9. 以下程序的输出结果是()int x=3,y=4; void main( ) int x,y=5;x=y+;prin tf (%d,x);A) 3B) 4C) 5D) 610. 在C语言中,函数默认的存储类型为()。A) autoB) registerC) staticD) extern11. 有定义:float y,*p=&y;,假定变量y在内存中所占地址为100103。那么p的值为 ()。A) 100 B

34、) 101 C) 102D) 10312. 有定义:int a10, n, *p1=a,*p2=&a9;,则正确的赋值语句为()。A) n=p2-p1; B) n=p2*p1; C) n=p2+p1;D) n=p1/p2;13. 调用 strlen(abcd0efng0)的结果为()。 4(B) 5(C) 8(D) 1014执行下面程序中输出语句后,a的值是()#includestdio.hmain( )int a; printf(%dn,(a=3*5,a*4,a);A)65B)20C)15D)1015. 若有定义int x,y;下面选项中合法的if语句() (A)if(a=b)x+;(B)i

35、f(a=b)x+;(C)if(ab)x+;(D)if(a=b)x+;16. 执行下面的程序后,a的值是()#include#define SQR(X)X*Xmain()int a=10,k=2,m=3; a/=SQR(m)/SQR(k); printf(%d n,a);A)10B)1C)5D)017. 若t为double类型,表达式(t=1, t+5, t)的值是()A)1B)6.0C)1.0D)618. 在C语言中,下面关于数组的描述正确的是()。(A) 数组的大小是固定的,但可以有不同类型的数组元素(B) 数组的大小是可变的,但所有数组元素的类型必须相同(C) 数组的大小是固定的,所有数组

36、元素的类型必须相同(D) 数组的大小是可变的,可以有不同的类型的数组元素19. 下述程序的输出结果是()#include void main()int a,b,c=241;a=c/100%9; b=-1&-1;printf(%d,%dn,a,b);(A)2,0(B)2,1(C).6,1(D)0,-120若有以下说明和语句,则下列引用方式不正确的是()struct workerint no;char *name; work,*p=&work;A. work.no B.(*p).no C.p-no D.work-no二、基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入

37、各小题的空白处。每空2分,共10分)1. 在C语言中,一个函数一般由两个部分组成,它们是函数说明部分和()。22. 任何程序都可调用标准函数exi t(),当它被调用时,它()程序的执行。53. 个C语言程序在可以被执行之前,必须通过的5个处理程序是:编辑程序、预处理程序、编译程序、汇编程序和。84. 在C语言中没有固有的输入和输出语句,但是用C语言编写的程序可以用函数调用的形式来实现输入、输出,这些函数由提供。75. 函数 rewind 的作用是。4备选项:1.主函数 2.函数体 3.函数首部 4.使指针指向文件的开头 5.终止 6.用户自定义函数 7.标准I/O库/系统&连接程序9判断文件

38、指针是否指向文件末尾三、程序填空题。(每空2分,共20分)。1. 以下程序的功能是从键盘上输入一行字符,将其中的小写字母转换为大写字母。请填空 #include stdio.hmain( )char c;while (c二)!=n)/ get char()if (c=a & cvoid main() char *a=“abcd”,”12345”,”efghijk”,”67890”;char ;/*pint j=0;p=a;for(;j4;j+)puts( );/ *(p+j)4. 以下程序用于求取两个整数的最大公因子。int mcf(int a, int b) int temp;while(b

39、)t emp = ;/ a%ba = b;b = temp;return ( a );5. 下面程序的功能是将一个字符串str的内容颠倒过来,请填空。main()char str=abcdefg;char *p1,*p2,ch;p1=str;p2=str;while(*p2!=0)p2+;;/ p2while(p1p2)ch=*p1;*p1=*p2;*p2=ch;;/ pl+p2;6. 函数yh的功能是构成一个杨辉三角形,请填空完成该函数。#include #define N 11void yh(aN) int j,k;for(j=1;jN;j+) aj1=1;ajj=:/Ifor( jNj+

40、)/ j=3for(k=2; kvoid main()void fun(int *k);int w=5;fun(&w);void fun(int *k)(*k)+; printf(%dn,*k+);2下面程序的输出结果是( s=1357)。#include stdio.hvoid main()char ch25=1234,5678,*p2;int j,k,s=0;for(k=0;k2;k+)pk=chk;for(k=0;k0&pkj=9;j+=2)s=10*s+pkj-0;printf(s=%dn,s);3下面程序的输出结果是( 9,19 )。#includeint func(int,int)

41、;main()int k=4,m=1,p;p=func(k,m);printf(%d,p);p=func(k,m);printf(%dn,p);int func(int a,int b)static int m=1,n=2;n+=m+1;m=n+a+b;return(m);4下面程序的输出结果是(5,6.000000 )。#include void main() int a10=1,2,3,4,5,6,7,8,9,10;int k,s,i;float ave;for(k=s=i=0;i10;i+) if (ai%2!=0)continue;s+=ai;k+;if(k!=0) ave=s/k;p

42、rintf(%d,%fn,k,ave);5.在下列程序中,若输入为:today is Monday!CR则输出结果是 3 words#includestdio.hvoid main()char s40,c;char *str=s;int num=0,word=0;gets(str);while(c=*str+)!=0)if(c= )word=0;else if(word=0)word=1;num+;printf(%d wordsn,num);6. 下列程序的输出结果是 15,0#includestdio.hunsigned f(unsigned num)unsigned k=1;dok*=nu

43、m%10;num/=10;while(num);return k;void main()int x=35,y=550;printf(%d,%d,f(x),f(y);五、编程序。(每小题10分,共20分)1. 写程序删除一个字符串中的所有空格。要求在主函数输入字符串并输出删除所有空格后的字符串;删除一个字符串中的所有空格功能用函数实现;例如:输入字符串This is a stri ng,则应输出Thisisas tri ng。#include stdio.h#include string.hvoid main()char *fun(char *str);char s81,*ds;printf(P

44、lease enter a string:);gets(s);ds=fun(s);printf(nResult :%sn, ds);char *fun(char *str)char *p=str;while(*p)if (*p= )strcpy(p,p+1);elsep+;return str;2. 编程实现求两个正整数的最大公约数和最小公倍数的功能,要求用一个函数求最大公约 数,另外一个函数求最小公倍数。#include void main()int gcd(int m,int n);int lcm(int m,int n,int g);int m,n,num1,num2;scanf(%d,

45、%d,&num1,&num2);m=gcd(num1,num2);n=lcm(num1,num2,m);printf(GCD=%d,LCM=%dn,m,n);int gcd(int m,int n)int t;while(n!=0)t=m%n;m=n;n=t;return m;int lcm(int m,int n,int g)return m*n/g;2008年第一次C语言上机考试题(第一套)1. (35分)编写程序判定输入的正整数是否“回文数”,所谓“回文数”是指正读反读都相 同的数,如:123454321。源程序存入testll.c参考程序:#includevoid main()int

46、n,m,r=0;printf(Input a number:);scanf(%d,&n);m=n;while(m)r=r*10+m%10;m/=10;if(n=r)printf(%d is a palindrome number.Reverse=%d.n,n,r);elseprintf(%d is no a palindrome number.Reverse=%d.n,n,r);2. (35分)下面程序要实现的功能是:统计文本文件“fname. txt”中的字符个数。请输入 并填空完成程序,源程序存入test12.c。#include#includevoid main() FILE *fp;

47、long num=0L;if(=NULL) printf(Open errorn);exit(0);while()fgetc(fp);num+;printf(num=%1dn,num-1); ; (fp=fopen(fname.txt,r) !feof(fp) fclose(fp)3. (30分)下面程序中,函数fun()的功能是逐个比较s, t两个字符串对应位置中的字符, 把ASCII值大或相等的字符依次存放到a数组中。请输入程序并改正程序中带*的行中 的错误,使它能够正确地输出结果。源程序存入test 13.c。#includevoid fun(char *s,char *t,char *

48、a)* int k; / int k=0;for(;*s&*t;)if(*s=*t)ak=*t;elseak=*s;if(*t&*s)*s-,t-;/ s+,t+;k+;ak=0;void main()* char s15= fsGAD123,t15= sdAood,a20;/ char s15= fsGAD123,t15=sdAood,a20;fun(s,t,a); puts(a);(第二套)1(35分)编写函数判断一个整数是否为素数,并编写主函数求100以内的素数。源程序存入 testll.c参考程序:#include#include void main()int i;int flag(i

49、nt);for(i=2;i=100;i+)if(flag(i) printf(%4d,i);putchar(n);int flag(int n)int k,f=1;for(k=2;k=sqrt(n);k+)if(n%k=0)f=0;return f;2. (35分)请补充下列程序中的空白处,使其能输出下图所示的图形。请输入程序并填空, 源程序存入testl2.c。#define M 10#include stdio.h void main()int i,j,k ; for(i=0;i6;i+)for(j=0;j二M/2-i;j+)printf( ); for( k=0; k=;k+)prin tf (*);put char(,n,);for (i=1; i=5; i+)for( j=0;j+)prin tf( );for(k=0; kM-2*i+l ; k+) printf(*); putchar( );/ 2*i j

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