发布时间 : 星期四 文章C语言作业及答案更新完毕开始阅读ae5e3367846a561252d380eb6294dd88d1d23d59
6、从变量的作用域角度来分,可以分为静态变量和动态变量( )。
7、如果一个字符数组中包含一个以上结束符’\\0’,则遇最后一个’\\0’时输出才结束( )。 8、gets( )函数的作用是从终端输入一个字符串到字符数组,并且将’\\0’也装入该数组( )。 9、不能将一个结构体变量作为一个整体进行输入和输出( )。 10、在C编译中,对枚举元素按常量处理( )。
11、C程序中的main( )函数必须放在程序的开始部分( )。
12、switch后面括号内的表达式可以是整型表达式或字符型表达式( )。
13、宏定义是用标识符代替一个字符串,只作简单的置换,不作语法检查( )。 14、C语言中,“&”运算符作为单目运算符时表示的是取地址运算,作为双目运算符时表示的是按位与运算( )。
15、do-while语句构成的循环必须用break语句才能退出( )。 三、写出程序的运行结果
1、 main ( ) Ming\
{int i, j; struct stu student2; float s;
student2=student1;
for (i=7; i4 ; i - -)
student2.name[0]='H'; {s=0;
student2.name[1]='u'; for (j=i; j3; j- -) s=s+i*j;
} student2.StuClass=990325; printf(“s=%f\\n”, s);
student2.sub.math=83;
}
2、 #includestdio.h
printf(\\\n\main ( )
{int k=1; char c=‘A’; ame, do
{switch (c++)
student2.sex,student2.StuClass,student2{case ‘A’: k++; break;
case ‘B’: k - -; .sub.math, case ‘C’; k+=2; break;
case ‘D’: k=k%2; continue;
student1.sub.eng,student2.sub.comp); case ‘E’: k=k*2; break;
default: k=k/3; } } 4、#include “stdio.h” k++;
main( )
} while (c‘F’);
{ char str[ ]=”7a8b9c”; printf(“k=%d\\n”, k);
} int i; for(i=0;str[i]!=’\\0’;i++) 3、#include
if(str[i]>=’0’ && str[i]<=’9’)
struct score
printf(“%c”str[i]);}
{ int math;
5、#include “stdio.h”
int eng;
main( )
int comp;
{ int a[ ]={0,2,5,8,12,15,23,35,60,65};
};
int x=15, i,n=10,m;
struct stu
i=n/2+1;m=n/2;
{ char name[12];
while(m!=0)
char sex;
{ if(x long StuClass; { i=i-m/2; m=m/2; } struct score sub; else if(x>a[i]) }; { i=i-m/2; m=m/2; } main( ) else break;} { struct stu student1={\ printf(“result=%d\\n”,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 ( ① upper) { ② printf (“%4. 0f, %6.1f\\n”, fahr, celsius); ③ ; } } 答案是:①fahr ②celsius=5/9*(fahr-32) ③fahr+=step 2、下面程序的功能是从键盘输入10个整数,去掉一个最大数和一个最小数,然后求剩下的8个数的平均值,请填空。 #include “stdio.h” { if(__①____) void main( ) max=a[t]; { int t,a[10],max,min; if(min>a[t]) float aver; ② ; for(t=0;t<10;t++) aver=aver+a[t]; } scanf(“%d”,&a[t]); aver=aver-max-min; aver=min=max=a[0]; aver=aver/8.0; for(t=1;t<10;t++) printf(“Aver=%5.2f\\n”,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 12 C 13、A 14、 D 15、 C 二、判断题 1、( × ) 2、( × ) 3、( √ ) 4、( × ) 5、( √ ) 6、( × ) 7、( × ) 8、( × ) 9、( √ ) 10、( √ ) 11、( × ) 12、( √ ) 13、( √ ) 14、( √ ) 15、( × ) 三、写出程序的运行结果 1、 答案是:s=45.000000 2、 答案是:k=1 3、答案是: Hu Ming,M,990325,83,80,90 4、答案是:789 5、答案是:result=4 四、程序填空 1、答案是:①fahr ②celsius=5/9*(fahr-32) ③fahr+=step 2、答案是:①max struct complex { fz.re=fx.re-fy.re; { float re; fz.im=fx.im-fy.im; float im; printf(“fx-fy=%5.2f+i*%5.2f\\n”,fz.r }fx,fy,fz; e,fz.im); add() } { fz.re=fx.re+fy.re; main() fz.im=fx.im+fy.im; { printf(“Enter four reals:\\n”); printf(“fx+fy=%5.2f+i*%5.2f\\n”,fz.rscanf e,fz.im); (“%f,%f,%f,%f”,&fx.re,&fy.re,&fy.im); } add(); sub(); mul(); div(); sub() } 2,参考答案: #include for(x=0;x<34;x++) for(y=0;y<26;y++) if(3*x+4*y==100&&x+y==33) printf(\} 作业D: 一、单项选择题 1、下列不正确的转义字符是( ) A) ‘\\\\’ B)‘\\’’ C)‘074’ D)‘\\0’ 2、执行int x=3,y=2;后,则表达式x=(y==3)的值是( )。 A)0 B)1 C)2 D)3 3、设 char x='a'; 则 printf(\的输出是 ( ) 。 A) x=a, y=97 B) x=97, y=a C) x=97, y=97 D) x=a, y=a 4、若有定义: float w; int a, b; 则合法的switch语句是()。 A)switch(w) { case 1: printf(\ { case 1.0: printf(\ default: printf(\ case 2.0: printf(\ case 1+2: printf(\ } } B)switch(a); D)switch(a+b); { case 1 printf(\ { case 1: printf(\ case 2 printf(\ case 2: printf(\C)switch(b) default: printf(\ 5、以下程序的输出结果是()。 main() { int a, b; for(a=1,b=1; a<=100; a++) { if(b>=10) break; if(b%3==1) { b+=3; continue; } } printf(\} A)101 B)6 C)5 D)4 6、函数调用语句“f((el,e2),(e3,e4,e5));”中参数的个数是( )。 A)1 B)2 C)4 D)5 7、选择出正确的说明语句( )。 A) int a['a']; B) int a[3, 4] C) int a[ ] [ ]; D) int (*a)[10]; 8、已知:char s[100]; int i; 则在下列引用数组元素的语句中,错误的表示形式是( )。 A) s[i+10] B) *(s+i) C) *(i+s) D) *((s++)+i) 9、对于如下的结构体定义,若对变量person的出生年份进行赋值,( ) 是正确的赋值语句。 struct date { int year, month, day; }; struct worklist { char name[20]; char sex; struct date birthday; } person; A) year=1976 B) birthday.year=1976 C)person.birthday.year=1976 D)person.year=1976 10、 若fp是指向某文件的指针,且已读到文件的末尾,则表达式feof(fp)的返回值是( )。 A) EOF B) –1 C) 非零值 D) NULL 11、 已知一个文件中存放若干学生档案记录,其数据结构如下: struct st { char num[10]; int age; float s[5]; }; 定义一个数组: struct st a[10]; 假定文件已正确打开,( )不能正确地从文件中读入10名学生数据到数组a中。 A)fread(a, sizeof(struct st), 10, fp); B)for(i=0; i<10; i++) fread(a[i], sizeof(struct st), 1, fp); C) or(i=0; i<10; i++) fread(a+i, sizeof(struct st), 1, fp); D) or(i=0; i<5; i+=2) fread(a+i, sizeof(struct st), 2, fp); 12、以下程序的输出结果是( ) 。