C语言作业及答案 联系客服

发布时间 : 星期四 文章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 main() { int x,y;

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、以下程序的输出结果是( ) 。