c语言作业题答案,C语言复习题及答案

《C语言复习题及答案》由会员分享,可在线阅读,更多相关《C语言复习题及答案(20页珍藏版)》请在人人文库网上搜索。

1、复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?()A) int B) char C) long D) float 2、若x 为unsigned int 型变量,则执行下列语句后x值为( )x = 65535;printf(“%dn”,x);A)65535 B)1 C)无定值 D)-13、有以下程序main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=avoid main( ) struct complex int x ;int y; cnum2=1,3,2,7;printf(“%d”, cnum0.y/cnum0.x*cnum1.。

2、x) ;A) 0 B) 1 C) 3 D) 6 12、下述程序的输出结果是()。#include void main( ) union unsigned char c ;unsigned int i4;z ;z.i0=0x39 ;z.i1=0x36;printf(“%c”,z.c);A) 6 B) 9 C) 0 D) 313、下述关于C语言文件操作的结论中,()是正确的。A)对文件操作必须先关闭文件B)对文件操作必须先打开文件C)对文件操作顺序无要求D)对文件操作前必须先测试文件是否存在,然后再打开文件14、以下程序的输出结果是()。main() char ch34=123,456,78,*p。

3、3; int i;for (i=0;imain ( )int i=0, j=0, k=0, m;for (m=0; mmain ( )int i=1;while (iadd1(int a , int n) int i;for(i =0;itypedef struct studentchar name10;long sno;float score;STU;main( ) STU a=zhangsan,2001,95,b=Shangxian,2002,90,c=Anhua,2003,95,d,*p=&d;d=a;if(strcmp(a.name,b.name)0) d=b;if(strcmp(c.。

4、name,d.name)0) d=c;printf(%ld%sn,d.sno,p-name);四、程序填空1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将缺省语句填上。main ( )float x, amax, amin;scanf (“%f”, &x);amax=x; amin=x;while ( )if ( ) amax =x;if ( ) amin =x;scanf (“%f”, &x);printf(“amax=%f, amin=%fn”, amax, amin);2、下面的程序是用指针来交换两个数据,请将缺省语句填上。void e。

5、xchange( int *p ,int *q) int t;t=*p; *p=*q; *q=t;main() int a,b,*x,*y;a=10;b=20;x=&a; printf(“%d %dn”,*x, *y);五、程序设计题 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数。2、用自定义函数和数组求n个数的平均值,并用主函数调用参考答案:一、单项选择题1、B 2、D 3、C 4、C 5、 A 6、A 7、D 8、C 9、C 10、D 11、D 12、B 13、。

6、B 14、C 15、 D二、判断题() 2、() 3、() 4、() 5、()6、 ) 7、() 8、() 9、()10、()11、( )12、( ) 13、( ) 14、( ) 15、( )三、写出程序的运行结果1、 答案是:0,1,2,52、 答案是:2 5 8 11 143、答案是:4、答案是:x5、答案是:2002Shangxian四、程序填空1、答案是:x=0 xamax xmax) max=sum;maxi=i;average/=N;/*打印*/printf(“NO. name score1 score2 score3 averagen”);for(i=0; iunion un i。

7、nt i;char c2; ;void main( ) union un x;x.c0=10;x.c1=1;printf(“n%d”,x.i);A) 266 B)11 C)265 D)13812、若程序中有如下的说明和定义:struct ex int x, y ; struct ex x, y;则会发生的情况是()。A) 编译时错 B) 程序能顺利编译、连接、执行C) 能顺利编译和连接,但不能执行D) 能通过编译,但连接出错13、C语言可以处理的文件类型是()。A) 文本文件和数据文件B) 文本文件和二进制文件 C) 数据文件和二进制文件D) 数据代码文件14、下面的for语句( )。for 。

8、(x=0, y=0; (y!=123) & (xmain ( )int a=1, b=3, c=5, d=4;if (amain ( )int k, j, m;for(k=5; k=1; k- -)m=0;for (j=k, jmain( )union Exa struct int a;int b;out;int c;int d;e;e.c=1; e.d=2;e.out.a=e.c*e.d;e.out.b=e.c+e.d;printf(%d %d,e.out.a,e.out.b); 4、#include “stdio.h”main( ) int a =1,2,3,4,i,j,s=0;j=1;f。

9、or(i=3;i=0;i-) s=s+ai*j;j=j*10; printf(“s=%dn”,s); 5、#include stdio.h#include string.hmain( ) char s1 =som things;char s2 =test;char s3 =good;printf(%sn,strcat(strcpy(s1,s2),s3);四、程序填空1、下面程序输出100到200之间的素数,每行输出10个素数,请将缺省语句填上,使算法完整。#include “math.h”main ( )int m, k, i, n=0;for (m=101; m=k+1)printf(“%d。

10、”, m); n=n+1;2、一个函数days,实现求某月某日是该年的第多少天。由主函数将年、月、日传递给days函数,计算后将日数传回主函数输出,请将缺省语句填上,使算法完整。struct y_m_d int year;int month;int day; date;main() int days(int ,int ,int);int i,day_sum;printf(“input year,month,day:”);scanf(“%d,%d,%d”,&date.year,&date.month,&date.day);day_sum=days( );printf(“n%d / %d is t。

11、he %d th day in %d.”, date.month, date.day, day_sum,date.year);days(int year, int month, int day) int day_sum, i;int day_tab13=0,31,28,31,30,31,30,31,31,30,31,30,31; for(i=1; i=3) return(day_sum);五、程序设计题1,学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数。

12、最低的学生的人数。#define N 16typedef struct char num10;int s;STREC;int fun(STREC *a, STREC *b) main() STREC sN=“GA05”,85,“GA03”,76,“GA02”,69,“GA04”,85,“GA01”,91,“GA07”,72,“GA08”,64,“GA06”,87,“GA015”,85,“GA013”,96,“GA012,64,“GA014”,91,“GA011”,91,“GA017”,64,“GA018”,64,“GA016”,72;STREC hN;int i, n;n=fun(s,h);p。

13、rintf(“The %d lowest score:n”,n);for(i=0; i B)11, 12C)11,12 D)11 ,122、若有语句int a=1,b=2,c=3;则以下值为0的表达式是( )A)a&b B)ab)|(b,则输出结果为()。main() int m,n;printf(Enter m,n:);scanf(%d%d,&m,&n);while(m!=n) while(mn) m-=n;while(nm) n-=m;printf(m=%dn,m);A)m=3B)m=2C)m=1D)m=06、运行下面的程序运行后,如果从键盘上输人5,则输出结果是()。main() int。

14、 x;scanf(%d,&x);if(x-void main( ) FILE *fp=fopen(“TEST”, “wb”);fprintf(fp, “%d%5.0f%c%d”, 58, 76273.0, -, 2278); fclose(fp);A) 58 75273 - 2278 B) .-2278C) -2278 D) 因文件为二进制文件而不可读13、下面程序输出结果是() 。 #define MAX 5int aMAX,k;main() printf(n); fun1(); fun3(); printf(t); fun2(); fun3(); fun1() for (k=0; k3; 。

15、j- -) s=s+i*j;printf(“s=%fn”, s);2、 #includemain ( )int k=1; char c=A;doswitch (c+)case A: k+; break;case B: k - -;case C; k+=2; break;case D: k=k%2; continue;case E: k=k*2; break;default: k=k/3;k+; while (cstruct score int math;int eng;int comp;struct stu char name12;char sex;long StuClass;struct s。

16、core sub;main( ) struct stu student1=Li Ming,M,88,80,90;struct stu student2;student2=student1;student2.name0=H;student2.name1=u;student2.StuClass=;student2.sub.math=83;printf(%s,%c,%ld,%d,%d,%dn,student2.name,student2.sex,student2.StuClass,student2.sub.math,student1.sub.eng,student2.sub.comp);4、#inc。

17、lude “stdio.h”main( ) char str =”7a8b9c”;int i;for(i=0;stri!=0;i+)if(stri=0 & striai) i=i-m/2; m=m/2; else break;printf(“result=%dn”,i+1);四、程序填空1、华氏和摄氏的转换公式为:c=5/9*(F-32),其中c表示摄氏的温度,F表示华氏的温度。要求输出从华氏0度到华氏300度,每隔20度输出一个值。main ( )int upper, step;float fahr = 0; celsius;upper = 300; step =20;while ( at)。

18、 ;aver=aver+at; aver=aver-max-min;aver=aver/8.0;printf(“Aver=%5.2fn”,aver);五、程序设计题1,利用结构类型分别写出复数的加、减的运算函数,并在主函数中调用这两函数,求任意两复数的和与差。2,木马和板凳共33只,共有100只脚,编程求木马和板凳各有多少只。参考答案:一、单项选择题1、 A 2、D 3、B 4、 B 5、 C 6、 B 7、D 8、C 9、 A 10、D 11、B 12C 13、A 14、 D 15、 C 二、判断题1、() 2、() 3、() 4、() 5、()6、() 7、() 8、() 9、() 10、。

19、()11、( ) 12、( ) 13、( ) 14、( ) 15、( )三、写出程序的运行结果1、 答案是:s=45.2、 答案是:k=13、答案是: Hu Ming,M,83,80,904、答案是:789 5、答案是:result=4 四、程序填空1、答案是:fahr celsius=5/9*(fahr-32) fahr+=step2、答案是:maxmain() int x,y;for(x=0;x34;x+)for(y=0;y26;y+)if(3*x+4*y=100&x+y=33)printf(x=%dty=%dn,x,y);复习D:一、单项选择题1、下列不正确的转义字符是( )A) B) 。

20、C)074 D)02、执行int x=3,y=2;后,则表达式x=(y=3)的值是( )。A)0 B)1 C)2 D)33、设 char x=a; 则 printf(x = %c, y= %c n, x, 97); 的输出是 ( ) 。A) x=a, y=97 B) x=97, y=a C) x=97, y=97 D) x=a, y=a4、若有定义: float w; int a, b; 则合法的switch语句是()。A)switch(w) case 1.0: printf(*n); case 2.0: printf(*n); B)switch(a); case 1 printf(*n);case 2 printf(*n);C)switch(b) case 1: printf(*n); default: printf(n);case 1+2: printf(*n); D)switch(a+b); case 1: printf(*n);case 2: printf(*n);default: printf(n);5、以下程序的输出结果是()。main() int a, b;for(a=1,b=1; a=100; a+)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值