为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C语言程序设计期末考试题库_

2019-01-22 5页 doc 340KB 439阅读

用户头像 个人认证

不系舟红枫

从教近30年,经验丰富,教学水平较高

举报
C语言程序设计期末考试题库_ 《C语言程序设计期末考试题库》 1、 题型统计及分值分配 题型 章序 单选 填空 程序分析 改错 编程 1-2 18 14 10 7 4 3 13 6 4 11 10 8 2 5 13 4 6 6 13 8 1 7 7 0 2 8-11 6 0 5 12-14 9 0 15 10 6 合计 100 50 15 15 15 2、...
C语言程序设计期末考试题库_
《C语言程序设计期末考试题库》 1、 题型统计及分值分配 题型 章序 单选 填空 程序 改错 编程 1-2 18 14 10 7 4 3 13 6 4 11 10 8 2 5 13 4 6 6 13 8 1 7 7 0 2 8-11 6 0 5 12-14 9 0 15 10 6 合计 100 50 15 15 15 2、组卷建议 试卷的试题类型及分值为: 1、单选题(20个,每个1分,共20分) 2、填空题(15个空,每空1分,共15分) 3、程序分析题(2个,共20分) 4、改错题(3个,共30分) 5、编程题(1个,共15分) 一、选择题 第1、2章: *1.以下选项中正确的整形常量是( B) A )12 B) -20 C)1,000 D) 4 5 6 * 2.以下选项中正确的实型常量是 ( D ) A )0 B)3.1415 C)0.329*102 D ).871 * 3.以下选项中不正确的实型常量是是( B ) A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2 * 4.以下选项中不合法的用户标识符是(A ) A)abc.c B)file C)Main D)PRINTF * 5.以下选项中不合法的用户标识符是( C ) A)_123 B)printf C) A$ D) Dim * 6.C语言中运算对象必须是整型的运算符是(A ) A)% B)/ C) ! D) * * # 7.可在C程序中用作用户标识符的一组标识符是( B ) A)void B)as_b3 C)For D) 2c define _123 _abc DO WORD If case SIG # 8.若变量已正确定义并赋值,符合C语言语法的表达式是 (B ) A)a=a+7; B)a=7+b+c,a+ + C)int(12.3%4) D)a=a+7=c+b # 9.以下叙述中正确的是( A ) A)a是实型变量,c允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值 B)在赋值表达式中,赋值号左边即可以变量也可以是任意表达式 C) 执行表达式a=b后,在内存中a和b存储单元中的原有值都将改变,a的值已由原值改变为b的值,b的值由原值变为0. D)已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3。 # 10.以下叙述中正确的是(C ) A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。 B)C程序由主函数组成 C) C程序由若干函数组成 D)C程序中只允许包含一个函数。 * 11.VC6.0中int类型变量所占字节数是(D ) A)1 B)2 C)3 D)4 * 12.合法的八进制数是(A ) A)0 B)028 C) -077 D) 01.0 * 13.不合法的十六进制数是( A ) A)oxff B)0Xabc C)0x11 D) 0x19 *14.组成C语言程序的是___C___。 A、 子程序 B、过程 C、函数 D、主程序和子程序 *15.语句printf(“%%d%d”, 123); 将输出:( C ) A、%123%d B、 %%d123 C、 %d123 D、上述语句语法有错 *16.下列四组选项中,均是C语言关键字的选项是__B____。 A、auto  enum  include B、switch  typedef  continue C、signed  union  scanf D、if  struct  type *17.以下选项中属于C语言的数据类型是 __C____。 A、复数型 B、逻辑型 C、双精度型 D、集合型 *18.在C语言中,int char short三种类型数据在内存中所占用的字节数__D____。 A、由用户自己定义 B、均为2个字节 C、是任意的 D、由所用机器的机器字长以及相应的编译系统决定 第3章: * 19. 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是( C ) A) a=b=c=100; B) d++; C) c+b; D) d=(c=22)-(b++); *20. 以下选项中不是C语句的是( C ) A) {int i; i++; printf("%d\n", i); } B) ; C) a=5,c=10 D) { ; } * 21. 以下合法的C语言赋值语句是(D ) A) A=B=58 B) k=int(a+b); C) a=58,b=58 D) --i; # 22. 以下程序的输出结果是( C ) #include main( ) { int x=10,y=3; printf("%d\n", y=x/y); } A) 0 B) 1 C) 3 D)不确定的值 # 23.若变量已正确为int类型,要给a、b、c输入数据,以下正确的输入语句是(D ) A) read(a,b,c); B) scanf("%d%d%d",a,b,c); C) scanf("%D%D%D",&a,&b,&c); D) scanf("%d%d%d",&a,&b,&c); ※ 24. 若变量已正确说明为float类型,要通过以下赋值语句 scanf("%f %f %f", &a, &b, &c);给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是(B ) A) 10 22 33 B) 10.0,22.0,33.0 C) 10.0 22.0 33.0 D) 10 22 33 * 25. 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( C ) A) a=a+b,b=a-b,a=a-b; B) t=a,a=b,b=t; C) a=t; t=b; b=a; D) t=b; b=a; a=t; ※26.若有正确定义语句, double x=5.16894; 语句printf("%f\n",(int)(x*1000+0.5)/( double)1000); 输出结果是(D ) A) 输出说明与输出项不匹配,输出无定值 B) 5.17000 C) 5.168000 D) 5.169000 # 27. 若有以下程序段: int c1=1,c2=2,c3; c3=c1/c2; printf(“%d\n”,c3); 执行后的输出结果是( A ) A) 0 B) 1/2 C) 0.5 D) 1 # 28. 若有以下程序段,其输出结果是(B ) int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%d\n",a,b,c); A) 0,0,-10 B) 0,0,5 C) -10,3,-10 D) 3,3,-10 # 29.a是int型变量,c是字符变量。下列输入语句中哪一个是错误的( B )。 A、scanf("%d,%c",&a,&c); B、scanf("%d%c",a,c); C、scanf("%d%c",&a,&c); D、scanf("d=%d,c=%c",&a,&c); # 30、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串的长度大于5,则输出时( B ). A、从左起输出该字符串,右补空格 B、按原字符串长度从左向右全部输出 C、右对齐输出该字符串,左补空格 D、输出错误信息 #31.语句printf(“%d\n”,strlen(“ATS\n012\1\\”));的输出结果是( C )。 A、11 B、10 C、9 D、8 第4章: * 32. 下列运算符中优先级最高的算符是( A ) A)! B)% C)一; D)&& * 33. 下列运算符中优先级最低的算符是( A ) A)|| B)!= C)<= D)+ * 34. 为表示关系:x≥y≥x,应使用的C语言表达式是( A ) A)(x>=y)&&(y>=z) B)(x>=y)AND(y>≡x) C)(x>=y>=z) D)(x>=y)&(y>=z) * 35. 设a、b和c都是int型变量,且a=3,b=4,c=5则以下的表达式中值为0的表达式是( D ) A)a&&b B)a<=b C)a||b+c&&b-c D)!((a main() { int a=2,b=-1,c=2; if(a main() { int w=4,x=3,y=2,z=1; printf(”%d\n”,(w main() { int a,b,s; scanf("%d%d",&a,&h); s=a; if(a main() { int k=-3; if (k<=0) printf(“* * * *\n”) else printf(“&&&&\n”); } 程序的输出结果是( D) A)输出##### B) 输出&&&& c)输出####&&&& D)有语法错不能通过编辑 *40.下列各语句序列判别变量x、y的大小,若x5) printf ("%d\n",m); else printf ("%d\n",m--); } A、7 B、 6 C、5 D、4 #42.所有变量均已正确定义,则下列程序段运行后y的值是__A__。   int a=0,y=10; if(a = 0) y - -; else if(a>0) y++; else y += y; A、20 B、11 C、9 D、0 第5章 *43.有以下程序段 int k,j,s; for(k=2;k<6;k++,k++) {s=1; for(j=k;j<6;j++) s+=j; } printf(”%d\n”,s); 程序段的输出结果是(D ) A)9 B)1 C)11 D)10 # 44. 有以下程序段: int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19:j+=4)m++; printf(”%d\n”,m); 程序段的输出结果是( C ) A)12 B)15 C)20 D)25 * 45. 有以下程序段: int n=10; while(n>7) { n--; printf(”%d\n”,n); } 程序段的输出结果是( B ) A)10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 6 # 46. 有以下程序段: int x = 3; do {printf(”%3d”,x-=2); } while(!(--x)); 程序段的输出结果是(C ) A)1 B)3 O C)1 -2 D)死循环 *47. 有以下程序: #include main() { int i,sum; for(i=1;i<6;i++ ) sum+=sum; printf(”%d\n”,sum); } 程序的输出结果是( C ) A)15 B)14 C)不确定 D)O # 48. 有以下程序: #include main() {int y=10; for( ;y>0;y--) if(y%3==0) { printf(”%d”,--y);continue;(B ) } } 程序的输出结果是 A)741 B)852 C)963 D)875421 * 49. 有以下程序段: int x; for(x=3;x<6;x++) printf((x%2)?("**%d"):("##%d\n"),x); 程序段的输出结果是( D ) A)**3 B)##3 C)##3 D)**3##4 ##4 **4 **4##5 **5 **5 ##5 # 50. 有以下程序: #include main() { int i; for(i=1;i<=5;i++) { if(i%2) printf("*"); else continue; printf("#"); } printf("$\n"); } 程序的输出结果是( A ) A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ # 51. 以下叙述中正确的是( D ) A)do--while语句构成的循环不能用其他语句构成的循环来代替 B)do-while语句构成的循环只能用break语句退出 C)用do-while语句构成循环时,只有在while后的表达式为非零时结束循环 D)用do-while语句构成循环时,只有在while后的表达式为零时结束循环 # 52. 有以下程序: #include main() { int x,i; for(i=1;i<=100;i++) {x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf{”%d”,x); } printf(”\n”); } 程序的输出结果是( A ) A)28 70 B)42 84 C)26 68 D)39 81 ※53.在下列选项中,没有构成死循环的程序是__A____。 A 、 int i =100; whine(1) /*括号中是阿拉伯数字“1”*/ { i=i%100+1; if (i>100)break; } B、 for (;;); C、 int k=1000; do {++k;} while(k>=1000); D 、 int s=36; while (s); --s; *54.在C语言中,while语句后的一对圆括号中,用以决定是否继续循环的表达式( B )。 A、只能用逻辑表达式 B、可用任意表达式 C、只能用逻辑表达式或关系表达式 D、只能用关系表达式 *55.有如下程序 main() { int i, sum; for(i=1;i<=3; sum++) sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是( C )。 A、 6 B、3 C、死循环 D、0 第6章: *56. c语言中的简单数据类型有( B) A)整型、实型、逻辑型 B)整型、实型、字符型 c)整型、字符型、逻辑型 D)整型、实型,逻辑型、字符型 *57. C语言中,字符(char)型数据在微机内存中的存储形式是(D ) A)反码 B)补码 c)EBCDIC码 D)ASCⅡ码 *58. 设有定义语句:char a='\72'; 则变量a(A ) *A)包含1个字符 B)包含2个字符 C)包含3个字符 D)定义不合法 *59. C语言中,下列不合法的字符常量是( D) A)'\xff' B)'\65' C)'&' D)'\028' *60. c语言中,下列不合法的字符串常量是( ) A)"\121" B)'y=' C)"\n\n" D)"ABCD\x6d" *61. 判断char型变量c是否为大写字母的最简单且正确的表达式是(D ) A)'A'<=c<='Z' B)(c>='A')||(c<='Z') C) ('A'<=c)AND('Z'>=c) D) (c>='A')&&(c<='Z') *62.有以下程序: #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); } 程序的输出结果是( D ) A)因输出格式不合法,无正确输出 B)65,90 C)A,Y D)65,89 # 63.有以下程序: #include main() { char x='A'; x=(x>='A'&&x<='Z')?(x+32):x; printf("%c\n",x); } 程序的输出结果是(B ) A)A B)a C)Z D)z *64. 有以下程序: #include main() { char ch; ch='A'+'5'-'3'; printf("%d,%c\n",ch,ch); } 程序的输出结果是( A ) A)67,C B)B,C C)C,D D)不确定的值 # 65. 有以下程序: #include main() { int c; while((c=getchar())!='\n') { switch(c-'2') { csse 0 : case 1 : putchar(c+4); case 2 : putchar(c+4);break; case 3 : putchar(c+3); default : putchar(c+2);break; } } printf("\n"); } 从第一列开始输入数据:2473代表Enter键,程序的输出结果是( A ) A)668977 B)668966 C)66778777 D)6688766 ※ 66. 若变量已正确定义,要求用语句:scanf("%f%c%f%c",&a,&cl,&b,&c2);给c1赋予字符%,给c2赋予字符#,给a赋予2.O,给b赋予4.0,则正确的输入形式是('Ц'代表空格,代表Enter健)( C ) A)2.0Ц%Ц4.0Ц# B)2.0%4.0Ц# C)2%ЦЦ4# D)2Ц%Ц4Ц# # 67.在Vc6.0中,已知数组int a[4][5]的首地址为30055(十进制),则元素a[2][4]的内存地址为( D )。 A、30069   B、30083  C、30075  D、30111 *68.设int a[][3]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是__B____。 A、2 B、3 C、4 D、无确定值 第7章 *69.以下叙述中正确的是( C ) A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)c语言程序中的main()函数必须放在程序的开始部分 *70. 已定义了以下函数 fff(float x) { printf(”%d\n”,x*x);} 该函数的类型是( C ) A)与参数x的类型相同 B)void类型 c)int类型 D)无法确定 #71. 有函数调用语句;func((expl,exp2),(exp3,exp4,exp5));,此函数调用语句含有的实参个数是( B ) A)1 B)2 C)4 D)5 # 72. 有以下程序: #include int func(int a,int b) { int c; c=a+b; return c; } main() { int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d\n",r); } 程序的输出结果是( C ) A)11 B)20 C)21 D)31 ※ 73. 有以下程序: #include int f(int,int); main() { int i=2,p; p=f(i,i+1) printf(”%d\n,p); } int f(int a,int b) { int c; c=a; if(a>b) c=1; else if(a==b) c=0; else c=-1; return(c); } 程序的输出结果是( A ) A)-1 B)0 C)1 D)2 *74.在C语言程序中,有关函数的定义正确的是___B___。 A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数的调用均不可以嵌套 D、函数的定义和函数的均可以嵌套 *75.putchar函数可以向终端输出一个___D___。 A、整型变量表达式值 B、实型变量值 C、字符串    D、字符或字符型变量值 第8-11章 *76.若有定义:int x,*pb;则正确的赋值表达式是(A) A)pb=&x B)pb=x C)*pb=&x D)*pb=*x #77.若有以下程序: #include void sub(int x, int y, int *z) {*z=y-x;} main() {int a,b,c; sub(10,5,&a);sub(7,a,&b);sub(a,b,&c); printf(“%d,%d,%d\n”,a,b,c); } 程序的输出结果是:( B ) (A)5,2,3 (B)-5,-12,-7 (C)-5,-12,-17 (D)5,2,7 #78.若有以下程序: main() {int k=2,m=4,n=6,*pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%d\n”,n); } 程序的输出结果是:( C ) (A)4 (B)6 (C)8 (D)10 #79.若有以下程序: main() {int * *k=2, *a, b=100; a=&b; k=&a; printf(“%d\n”,* *k); } 程序的输出结果是:( B ) (A)运行出错 (B)100 (C)a的地址 (D)b的地址 #80.若有以下程序: #include void sub(double x, double *y, double *z) {*y=*y-1.0; *z=*z+x;} main() {double a=2.5,b=9.0,*pa,*pb; pa=&a; pb=&b; sub(b-a,pa,pa); printf(“%f\n”,a); } 程序的输出结果是:( C ) (A)9.000000 (B)1.500000 (C)8.000000 (D) 3.000000 #81.若有以下程序: #include void prtv( int *x ) { printf(“%d\n”,++*x);} main() { int a=25; prtv(&a); } 程序的输出结果是___D___。 A、23 B、24 C、25 D、26 第12-14章 * 82. c语言中,形参的缺省的存储类型是(A ) A)auto(自动) B)static(静态) C)register(寄存器) D)extern(外部) *83. 以下叙述中错误的是( D) A)一个变量的作用域的开始位置完全取决于变量定义语句的位置 D)全局变量可以在函数以外的任何部位进行定义 c)局部变量的“生存期”只限于本次函数调用.因此不可能将局部变量的运算结果保存至下一次调用 D)一个变量说明为static存储类是为了限制其他编译单位的引用。 * 84.给出以下定义: char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为( C)。 A、 数组X和数组Y等价        B、 数组X和数组Y的长度相同 C、 数组X的长度大于数组Y的长度  D、 数组X的长度小于数组Y的长度 * 85.已知各变量的类型说明如下:     int k,a,b;     unsigned long w=5;     double x=1.42; 则以下不符合C语言语法的表达式是( A )。 A、x%(-3)            B、w += -2    C、k=(a=2,b=3,a+b)        D、a+=a-=(b=4)*(a=3) * 86.在C语言中,以下正确的说法是( A ) A、实参和与其对应的形参各占独立的存储单元 B、实参和与其对应的形参占用同一个存储单元 C、只有当实参和与其对应的形参同名时才占用同一个存储单元 D、形参是虚拟的,不占用存储单元 * 87.以下对C语言函数的有关描述中,正确的是( A )。 A、在C语言程序中,调用函数时,只能把实参的值传递给形参,形参的值不能传送给实参 B、C语言函数既可以嵌套定义又可嵌套调用 C、C语言函数必须有返回值,否则不能使用函数 D、在C语言程序中有调用关系的所有函数必须放在同一个源程序文件中 * 88.以下正确的叙述是____D__。 A、在C程序中,每行只能写一条语句B、若a是实型变量,C程序允许赋值a=10,因此实型变量中允许存放整型数据 C、在C程序中,无论是整数还是实数,都能够准确无误地表示 D、在C程序中,%是只能用于整数运算的运算符 # 89.以下程序(程序左边的数字为行编号)  1 #include  2 #include  3 main()  4{ char s[]="string";  5 puts(s);  6 strcat(s,"hello");  7 printf("%3s\n",s); } 此程序( C )。 A、 没有错 B、 第1行有错 C、 第6行有错 D、 第7行有错 * 90. 以下字符中,不正确的C语言转义字符是( D ) A、‘\t’ B、 ‘\011’ C、‘\n’ D、 ‘\018 第15章: * 91. 有以下程序: #include main() { char x=040; printf("%d\n",x=x<<1); } 程序运行后的输出结果是(D ) A) 100 B)160 C)120 D)64 ※ 92. 设有定义语句: char a=3, b=6,c; 则执行赋值语句c=a^b<<2;后变量c中的二进制值是(A ) A)00011011 B)00010100 C)00011100 D)00011000 * 93.有以下程序: #include main() {short int x=35; char z=’A’; printf("%d\n",(x&15)&&(z<'a')); } 程序运行后的输出结果是(B ) A)0 B)l C)2 D)3 # 94. 有以下程序: #include main() { short int a=5,b=6,c=7,d=8,m=2,n=2; printf("%d\n",(m=a>b)&(n=c>d)); } 程序运行后的输出结果是(A ) A)0 B)1 C)2 D)3 * 95.以下程序的输出结果是( D ) main() {int k=2, n=6, m=1; n=n*k-m ; printf(“%d”,n); } A、 4 B、6 C、8 D、11 # 96.下列程序段执行后s值为____C__。 int i=5, s=0; do if (i%2) continue; else s+=i; while (- -i); A、 15 B、9 C、 6 D、以上均不是 * 97.以下叙述正确的是( D )。 A、while语句构成的循环不能用其它语句构成的循环来代替。 B、while语句构成的循环只能用break语句退出。 C.while语句构成的循环,在while后的表达式为非零时结束循环。 D、 用while语句构成的循环,在while后的表达式为零时结束循环。 * 98.以下程序(程序左边的数字为行编号)  1 #include  2 #include  3 main()  4{ char s[15]="string";  5 puts(s);  6 strcat(s,"hello");  7 printf("%3s\n",s); } 程序会___A___。 A、 没有错 B、 第1行有错 C、 第6行有错 D、 第7行有错 * 99.设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( B )。 A、7 B、8 C、6 D、2 * 100. C语言可执行程序的开始执行点是( C ) A、 程序中第一条可执行语言 B、 程序中第一个函数 C、 程序中的main函数 D、 包含文件中的第一个函数 二、填空题 第1章: * 1. 在VC6.0环境中用RUN命令运行一个c程序时,所运行的程序的后缀是______。 答案:.exe * 2. c语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。 答案:.c .obj .exe * 3. 结构化程序由_____、_____、_____三种基本结构组成。 答案:顺序、选择、循环 *4. C语言中的标识符只能由___、____、数字等三种字符组成,且第一个字符不为______. 答案:字母、下划线、数字 第2章: * 1.若k为int型变量且赋值11。请写出运算k++后表达式的值_________和变量k的值_________。 答案:11 12 * 2.若x为double型变量,请写出运算x=3.2,++x后表达式的值_________和变量x的值_________。 答案:4.2 4.2 * 3. 函数体由符号____开始,到符号____结束。函数体的前面是____部分,其后是____部分。 答案:{、}、定义(数据)、执行 * 4. C语言中的标识符可分为____、____、和预定义标识符三类。 答案:关键字、用户标识符 * 5. 在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。 答案:int、float、double * 6.把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。 答案:float a1=1.0,a2=1.0; * 7. C程序中定义的变量,代表内存中的一个____。 答案:存储单元 # 8.表达式3.5+1/2的计算结果是____。 答案:3.5 # 9、若a=6,b=4,c=3,则表达式 a&&b+c||b-c的值是______ 答案: 1 *10、在C语言中, float类型数据占__个字节。 答案: 4 第3章: # 3.1 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。 int i=-200,j=2500; printf("(1) %d ,%d",i,j); printf("(2) i=%d, j=%d\n",i,j); printf("(3) i=%d\n j=%d\n",i,j); ____________ ____________ ____________ 答案:(1)-200,2500 (2)i=-200, j=2500 (表示Enter键) (3)i=-200 (表示Enter键)j=2500 # 3.2 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时: scanf("%d",&i); scanf("%d",&j); scanf("%d",&k); 当执行第一个输入语句,从键盘输入: 12.3 (表示Enter键) 则变量i、j、k的值分别是____、____、____。 答案:12、0、0 * 3.3 复合语句在语法上被认为是____。空语句的形式是____。 答案:一条语句、 ; * 3.4 C语句的最后用____结束。 答案:; · 3.5 以下程序段, int k; float a; double x; scanf("%d%f%lf",&k,&a,&x); printf("k=%d,a=%f,x=%f\n",k,a,x); 要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式 (1)_______________________ (2)_______________________ (3)_______________________ 答案: (1) 100空格 25.81空格 1.89234 (2) 100 回车25.811.回车89234 (3) 100 Tab 25.81Tab 1.89234 #6.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是_______________。 int b,c; float a; scanf("%f,%d,c=%d",&a,&b,&c); 答案: 5.0,4,c=3 第4章: *1 . c语言中用_______表示逻辑值“真”,用______表示逻辑值“假”。 答案: 非零,零 * 2 . C语言中的关系运算符“!=”的优先级比“<=”______. 答案:低 * 3. C语言中的逻辑运算符“&&”比“||”的优先级______ 答案:高 * 4 . c语言中的关系运算符“= =”比逻辑运算符“&&”的优先级______ 答案:高 * 5. c语言中逻辑运算符______的优先级高于算术运算符。 答案:! # 6. 将下列数学式改写成c语言的关系表达式或逻辑表达式:A)______B)______。 A)a=b或a4 答案: a= =b || a 4 || x< - 4 # 7. 请写出以下程序的输出结果________。 #include main() {int a=100; if(a>100) printf("%d\n",a>100); else printf("%d\n",a<=100); } 答案: 1 # 8. 请写出与以下表达式等价的表达式:A)______________B)______________ A)!(x>0) B)!0 答案: x<=0 1 * 9. 当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为_______、______、______. if(a>c) b=a;a=c ;c=b; 答案: a=3 , b=2 , c=2 ※ 10. 若变量巳正确定义,以下语句段的输出结果是______。 x=0;y=2;z=3; switch(x) { case 0: switch(y==2) {case 1: printf(”*”); break; case 2: printf(”%”);break; } case 1: switch(z) { case 1: printf(”$”); case 2: printf(”*”);break; default: printf(”#“); } } 答案: * # 第5章: # 1. 当执行以下程序段后,i的值是________、j的值是________、k的值是________。 int a,b,c,d,i,j,k; a=10;b=c=d=5;i=j=k=0; for(;a>b;++b) i++; while(a>++c) j++; do k++; while(a>d++); 答案: 5, 4, 6 # 2. 以下程序段的输出结果是________。 int k,n,m; n=10;m=1;k=1; while(k++<=n)m*=2; printf("%d\n",m); 答案: 1024 ※ 3.以下程序的输出结果是_________。 #include main() {int x=2; while(x--); printf("%d\n",x); } 答案: -1 *4. 以下程序段的输出结果是_________。 int i=0,sum=1; do{sum+=i++;}while(i<5); printf("%d\n",sum); 答案: 11 第6章 * 1. C语言中,字符在内存中占_________个字节。 答案: 1 * 2. 调用C语言提供的对字符进行处理的库函数时,在#include命令行中应包含的头文件是_________。 答案: ctype.h # 3. 若变量已正确定义.在执行以下while语句时,输人字符A后,ch的值是_________· while(ch=getchar()= ='A'); 答案:1 #4. 若变量已正确定义,要通过以下语句绐a、b、c、d分别辅人字符A、B、C、D,给w、x、y、z分别输入整数10、20、30、40,正确的输入形式是_________,请用代表Enter键。 seanf("%d%c%d%c%d%c%d%c",&w,&a,&x,&b,&y,&c,&z,&d); 答案: 10A 20B 30C 40D ※ 5. 若有以下定义和输入语句,要求给c1、c2分别辅人字符A和B,给a1、a2分别输入7.29和101.298, 从键盘正确辅人数据的形式是______________________。 char c1,c2; float a1,a2; · scanf("%f%f",&al,&a2);scahf("%c%c",&cl,&c2); 答案: 7.29 101.298AB↙ (7.29↙101.298AB↙) ※ 6. 若有以下定义和输入语句,要求给c1、c2分别输入字符A和B,给a1、a2分别输入7.29和101.298,从键盘正确辅人数据的形式是______________________。 char c1,c2; float al,a2; scanf("%c%f%c%f",&cl,&a1,&c2,&a2); 答案:A7.29B101.298↙ ※ 7. 若有以下定义和输入语句,要求给c1,c2,c3分别输人字符A、B和C,请写出从键盘正确输人数据的形式______________________。 char c1,c2,c3; scanf("%4c",&c1); scanf("%4c",&c2); scanf("%4c",&c3); 答案: AЦЦЦ↙ BЦЦЦ↙ CЦЦЦ↙ # 8.已知数组double a[4][5]的首地址为30055(十进制),则元素a[1][4]的地址为______。 答案:30127 第15章 * 1. 设变量a的二进制数是00101101,若想通过运算a^b使a的高四位取反,低四位不变,则b的二进制数应是_________。 答案:11110000 * 2.a为任意整数。能将变量a清零的表达式是________。 答案: a & 0 *3. a为八进制数07101。能将变量a中的各二进制位均置成1的表达式是___________。 答案: a | 1 * 4. 能将两字节变量x的高八位全置1,低八位字节保持不变的表达式是___________。 答案: x | 1111111100000000 # 5. 运用位运算,能将八进制数012500除以4,然后赋给变量a的表达式是___________。 答案:a = 012500>>2 *6.运用位运算,能将字符变量ch中的大写字母转换成小写字母的表达式是___________。 答案:ch | 32 #7.在位运算中,操作数每右移一位(移出位不含1),其结果相当于______。十进制数57^42=_________(结果写为十进制数)。 答案:除以2 19 # 8、以下程序运行后输出结果是______     main()     {   int ,x,y,z;         x=1;y=2;z=3;         printf("%d,%d",x*z,y); } 答案:3,2 三、程序分析题 第3-7章 # 1.以下程序的输出结果是__________ #include unsigned fun6(unsigned num) { unsigned k=1; do { k*=num%10; num/=10; } while(num); return k; } main() { unsigned n=26; printf("%d\n",fun6(n)); } 答案: 12 # 2.以下程序的输出结果是__________ #include double sub(double x,double y,double z) { y-=1.0;z=z+x;return z;} main() { double a=2.5,b=9.0; printf("%f\n",sub(b-a,a,a)); } 答案: 9.000000 # 3.以下程序的功能是计算s= ,请填空: #include long f(int n) { int i; long s; s=___________; for(i=1;i<=n;i++) s=_______; return s; } main() { long s;int k,n; scanf(“%d”,&n); s=____________; for(k=0;k<=n;k++) s=s+_________________; printf(“%ld\n”,s); } 答案:1 s*i 0 k ※ 4. fun1(int a, int b) { int c; a+=a; b+=b; c=fun2(a,b); return c*c; } fun2(int a,int b) { int c; c=a*b%3; return c;} main() { int x=11,y=19; printf(“%d\n”,fun1(x,y)); }运行程序的结果是__________。 答案:4 # 5. #define N 2 #define M N+1 #define NUM (M+1)*M/2 mian() { int i; for(i=0; i<=NUM; i++); printf(“%d\n”,i);}程序中的for循环执行的次数是_____。 答案:8 ※ 6. 有以下程序段: s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(“%f\n”,s); 完成以下程序段使其功能与之完全相同: s=0.0; ________________ k=0; do{ s=s+d; _________________; d=1.0/(k*(k+1)); }while(__________); printf(“%f\n”,s); 答案: d=1.0 , k++ , k<=n # 7.阅读以下程序: #define MIN(x,y) (x)<(y)?(x):(y) main() { int i,j,k; i=10; j=15; k=10*MIN(i,j); }运行程序后的输出结果是______________________________。 答案:15 ※ 8.以下程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。 #include main() {float x,amax,amin; scanf("%f",&x); amax=x;amin=x; while(_______) {if(x>amax)amax=x; if(______)amin=x; scanf("%f"&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 答案:x>=0 , x int ast(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; } main( ) { int a,b,c,d; a=4; b=3; ast(a,b,&c,&d); printf(“%d,%d\n”,c,d); } 运行程序的结果是__________。 答案:7 1 ※ 3. 以下程序运行后的输出结果是 _________________ #include main() { int a=3,b=2,c=1; c-=++b; b*=a+c; { int b=5,c=12; c/=b*2; a-=c; printf("%d,%d,%d",a,b,c); a+=--c; } printf("%d,%d,%d\n",a,b,c); } 答案: 2 ,5 ,1 3 ,2 ,-2 ※ 4. 以下程序运行后的输出结果是_________________。 #include void fun( ) { static int a; a+=2;printf("%d",a); } main() { int cc; for(cc=1;cc<=4;cc++) fun( ); printf("\n"); } 答案:2 4 6 8 ※5. 给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。 例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。 #include #include #define N 80 void fun(char *s, int n, char *t) { int len,i,j=0; len=strlen(s); if(n>=len) strcpy(__1__); else { for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; t[j]= __3__ ; } } main() { char s[N],t[N]; int n; printf("Enter a string: ");gets(s); printf( "Enter n:"); scanf("%d",&n); fun(s,n,t); printf("The string t : "); puts(t); } 答案:(1)t,s(2)s[i](3)0 四、改错题: 请改正以下程序的错误。(说明:标有/************found************/的下方一行有错误) 第1-6章 * 1. /************found************/ #include stdio.h ; main( ) / * main function * / float r, s; /*r is radius*/,/*s is area of circular*/ r = 5.0 ; /************found************/ s=3.14159 * r2; printf("%f\n",s); 答案: #include"stdio.h"或者#include s=3.14159 * r *r;} *2. /************found************/ #include ‘stdio.h’ /************found************/ main /* main function */ { float a,b,c,v; /*a,b,c are sides, v is volume of cube*/ a = 2.0 ; b = 3.0 ; c = 4.0 v = a * b * c; printf("%f\n",v); } 答案: #include"stdio.h"或者#include main( ) /* main function */ * 3. 以下程序的功能是求圆的周长,请改正错误: #include “stdio.h”; /************found************/ main( ); \* main function \* { float r,l ; /************found************/ R=5.0; /************found************/ l=2*3.14159*r2; printf(“%f\n”,l); } 答案:main( ) /* main function */ r=5.0; l=2*3.14159*r; * 4. main( ) {double a,b,c,s,v; /************found************/ printf(input a,b,c:\n); /************found************/ scanf(“%d,%d,%d”,a,b,c); s=a*b; v=a*b*c; /* 计算长方形的面积、体积*/ /************found************/ printf(“%d %d %D”,a,b,c); /************found************/ printf(“s=%f\n”,s,”v=%d\n”,v); } 当程序执行时,屏幕的显示和要求输入形式如下: input a,b,c:2.0 2.0 3.0 a=2.000000,b=2.000000,c=3.000000 s=4.000000,v=12.000000 答案: printf(“input a,b,c:\n”); scanf(“%lf,%lf,%lf”,&a,&b,&c); printf(“a=%f,b=%f,c=%f”,a,b,c); printf(“s=%f,v=%f\n”,s,v); # 5. #include #include /************found************/ void fun( int k ) { int n; float s, w, p, q; n = 1; s = 1.0; while ( n <= k ) { w = 2.0 * n; p = w - 1.0; q = w + 1.0; s = s * w *w/p/q; n++; } /************found************/ return s } main ( ) { printf("%f\n", fun (10)); } 答案:void改为float return s; #6、给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n项之和。 和值通过函数值返回main函数。 例如,若 n = 5,则应输出: 8.391667。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include /**************found**************/ fun (int n ) { int a = 2, b = 1, c, k ; double s=0.0 ; for ( k = 1; k <= n; k++ ) { s = s + 1.0 * a / b ; /**************found**************/ c = a; a += b; b += c; } return(s) ; } main( ) { int n = 5 ; printf( "\nThe value of function is: %lf\n", fun ( n ) ) ; } 答案:(1)double fun (int n)(2)c=a;a+=b;b=c; #7、给定程序MODI1.C中函数 fun 的功能是:判断一个整数是否是素数,若是返回1,否则返回0。 在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数。不得增行或删行,也不得更改程序的结构! #include int fun ( int m ) { int k = 2; while ( k <= m && (m%k)) /************found************/ k++ /************found************/ if (m = k ) return 1; else return 0; } main( ) { int n; printf( "\nPlease enter n: " ); scanf( "%d", &n ); if ( fun ( n ) ) printf( "YES\n" ); else printf( "NO!\n" ); } 答案:(1)k++;(2)if(m==k) 第7-11章 ※ 1、函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include /**********found**********/ char fun(char *s, char *t) { int sl=0,tl=0; char *ss, *tt; ss=s; tt=t; while(*ss) { sl++; /**********found**********/ (*ss)++; } while(*tt) { tl++; /**********found**********/ (*tt)++; } if(tl>sl) return t; else return s; } main() { char a[80],b[80],*p,*q; int i; printf("\nEnter a string : "); gets(a); printf("\nEnter a string again : "); gets(b); printf("\nThe longer is :\n\n\"%s\"\n",fun(a,b)); } 答案:(1)char *fun(char *s,char *t)(2)ss++;(3)tt++; ※ 2、给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。 例如,调用fun函数之前给字符串输入:ABCDeFGH, 调用后字符串中的为:eABCDFGH。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include fun( char *p ) { char max,*q; int i=0; max=p[i]; while( p[i]!=0 ) { if( maxp ) { *q=*(q-1); q--; } p[0]=max; } main() { char str[80]; printf("Enter a string: "); gets(str); printf("\nThe original string: "); puts(str); fun(str); printf("\nThe string after moving: "); puts(str); printf("\n\n"); } 答案:(1)q=p+i;(2)while(q>p) ※ 3、给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下的值。 1 1 1 1 y = ------- + --------- + --------- + …… + ------- 100*100 200*200 300*300 m*m 例如,若m = 2000,则应输出: 0.000160。 请改正程序中的语法错误,使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include /************found************/ fun ( int m ) { double y = 0, d ; int i ; /************found************/ for( i = 100, i <= m, i += 100 ) { d = (double)i * (double)i ; y += 1.0 / d ; } return( y ) ; } main( ) { int n = 2000 ; printf( "\nThe result is %lf\n", fun ( n ) ) ; } 答案:(1)double fun(int m)(2)for(i=100;i<=m;i~1+=0) ※ 4、给定程序MODI1.C中函数 fun 的功能是: 读入一个字符串(长度<20 ),将该字符串中的所有字符按ASCII码升序排序后输出。 例如, 若输入: edcba, 则应输出: abcde。 请改正程序中的错误,使它能统计出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include void fun( char t[] ) { char c; int i, j; /**********found***********/ for( i = strlen( t ); i; i-- ) for( j = 0; j < i; j++ ) /**********found***********/ if( t[j] < t[ j + 1 ] ) { c = t[j]; t[j] = t[ j + 1 ]; t[j + 1 ] = c; } } main() { char s[81]; printf( "\nPlease enter a character string: " ); gets( s ); printf( "\n\nBefore sorting:\n \"%s\"", s ); fun( s ); printf( "\nAfter sorting decendingly:\n \"%s\"", s ); } 答案:(1)for(i = strlen( t )-1; i;i--)(2)if(t[j] > t[j + 1 ] ) ※ 5、给定程序MODI1.C中 fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。 例如, 给字符串 s 输入:AAaaBBb123CCccccd,则应输出结果:upper = 6, lower = 8。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include /**********found**********/ void fun ( char *s, int a, int b ) { while ( *s ) { if ( *s >= 'A' && *s <= 'Z' ) /**********found**********/ *a=a+1 ; if ( *s >= 'a' && *s <= 'z' ) /**********found**********/ *b=b+1; s++; } } main( ) { char s[100]; int upper = 0, lower = 0 ; printf( "\nPlease a string : " ); gets ( s ); fun ( s, & upper, &lower ); printf( "\n upper = %d lower = %d\n", upper, lower ); } 答案:(1)void fun ( char *s, int *a, int *b )(2)++(*a);(3)++(*b); #6、给定程序MODI1.C中函数fun的功能是: 交换主函数中两个变量的值。例如: 若变量a中的值原为8,b中的值为3。程序运行后a中的值为3, b中的值为8。 请改正程序中的错误, 使它能计算出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构! #include /*********found**********/ int fun(int x,int y) { int t; /*********found**********/ t=x;x=y;y=t; } main() { int a,b; a=8;b=3; fun(&a,&b); printf("%d, %d\n",a,b); } 答案:(1)int fun(int *x,int *y)(2)t=*x;*x=*y;*y=t; #7.给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。 2 3 5 8 13 21 ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , …… 1 2 3 5 8 13 例如,若n = 5,则应输出:8.391667。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include /************found************/ void fun ( int n ) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /************found************/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( "\nThe value of function is: %lf\n", fun ( n ) ); } 答案:(1)double fun ( int n )(2)s=s+(double)a/b; ※ 8、给定程序MODI1.C中函数 fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 答案:(1)if (n==0)(2)result *= n-- ; 五、编程题 第3章 * 3.1 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。 答案: main( ) { int hour,minute; hour=560/60; minute=560%60; printf("hour=%d,minute=%d",hour,minute); } * 3.2 编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。 答案: #include main( ) { int num1,num2,i,j; /* 定义变量 i-商,j-余数 */ printf("input num1 and num2:\n"); scanf("%d%d",&num1,&num2); i=num1/num2; j=num1%num2; printf("商=%d\n 余数=%d",i,j); } * 3.3 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。 答案: main( ) { double a,b,c,average=0; printf("input a,b,c(double):\n"); scanf("%lf%lf%lf",&a,&b,&c); average=(a+b+c)/3; average=average*10; average=average+0.5; average=(int)average; average=average/10; printf("average=%lf",average); } —————————————————————————————————————— * 3.4 编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中的值给a。 答案: main( ) { int a,b,c,t=0; printf("input a b c:\n"); scanf("%d%d%d",&a,&b,&c); t=c;c=b;b=a;a=t; printf("a=%d b=%d c=%d",a,b,c); } 第4章 * 4.1 编写程序,输入一个整数,打印出它是奇数还是偶数。 答案: main( ) { int i; printf("input a integer:\n"); scanf("%d",&i); if(i%2==0) /*条件判断*/ printf("%d is a even",i); else printf("%d is a odd",i); } * 4.2 编写程序,输入a、b、c三个数,打印出最大者。 答案: main( ) { int a,b,c,max = 0; printf("input (int)a b and c:\n"); scanf("%d%d%d",&a,&b,&c); max = a; if(max1e-6) /* fabs求浮点型数据的绝对值 */ { t=t*i; sum=sum+1/t; i++; } printf("e=%lf",sum); } ※ 5.3编写程序,打印以下图形: * *** ***** ******* ***** *** * 答案: #include main( ) { int i,j; for(i=1;i<=7;i++) /*控制行数*/ { for(j=1;j<=7;j++) /*控制星数*/ { if((j<=fabs(4-i))||(j>7-fabs(4-i))) printf(" "); else printf("*") } printf("\n"); } } # 5.4.译密码。 为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。 假设:按以下规律将电文编成密码: 将字母A变成字母E,a变成e,即变成其后的第四个字母,非字母符不变! 请编写程序实现此功能。 答案: #include main() { char c; while((c=getchar())!=‘\n’) { if(c>=’a’&&c<=‘z’)||(c>=‘A’&&c<=‘Z’) { c=c+4; if(c>’Z’&&c<=‘Z’+4||c>’z’) c=c-26; } printf(“%c”,c); } } # 5.5.打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和恰好等于它本身。例如,371=33+73+13。 答案: main ( )   { int n, i, j, k;     for( n=100; n<1000; n++ )     { i=n/100;  j=n/10%10;    k=n%10;      if ( n == i*i*i+j*j*j+k*k*k) printf (“%d = %d*%d*%d+%d*%d*%d +%d*%d*%d \n”, n,i,i,i,j,j,j,k,k,k);       }   } ※ 5.6编程实现猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少桃子。 答案: main() { int day,x1,x2; day=9; x2=1; for(;day>0;day--) {x1=(x2+1)*2; x2=x1; } printf(“total=%d\n”,x1); } 第6章 ※ 6.1 请编写输出以下图案的程序,图案的行数由输入的值确定。 A BBB CCCCC DDDDDDD EEEEEEEEEEE 答案: #include main() { int i,j,k,n; char a='A'; printf("please input:"); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) printf(" "); for(k=1;k<=2*i-1;k++) printf("%c",a); a=a+1; printf("\n"); } } 第7-10章 ※ 1. 编写函数,根据整型形参m的值,计算如下公式的值。 t=1-1/(2 x 2)-1/(3 x 3)-...-1/(m x m) 例如:若m=5,则应输出0.536389。 答案: main() { float t=1; float f2(int); int i,m; scanf("%d",&m); for(i=2;i<=m;i++) t=t-f2(i); printf("t=%f",t); } float f2(int m) { float s; s=1.0/(m*m); return s; } # 2. 编写函数用以求表达式x2-5x+4,x作为参数传给函数,调用此函数求: y1=22-5*2+4 y2=(x+15)2-5*(x+15)+4 y3=sin2x-5*sinx+4 答案: #include math.h float fun(float x) { float y; y=pow(x,2)-5*x+4; return y; } main() { float x,y1,y2,y3; clrscr(); printf("Enter x:\n"); scanf("%f",&x); y1=fun(2); y2=fun((x+15)); y3=fun(sin(x)); printf("y1=%f\ny2=%f\ny3=%f\n",y1,y2,y3); } _1211399375.unknown _1301228070.unknown
/
本文档为【C语言程序设计期末考试题库_】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索