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

发布时间 : 星期一 文章C语言作业及答案更新完毕开始阅读ae5e3367846a561252d380eb6294dd88d1d23d59

{ 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 the %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_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; ②

for(i=1; i

day_sum+=day_tab[i];

day_sum+=day;

if ((year%4==0&&year0!=0||year%4==0) && month>=3) ③ return(day_sum); }

五、程序设计题

1,学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 #define N 16 typedef struct { char num[10]; int s; }STREC;

int fun(STREC *a, STREC *b) { ………… }

main()

{ STREC s[N]={{“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 h[N]; int i, n; n=fun(s,h); printf(“The %d lowest score:\\n”,n); for(i=0; i

printf(“%d M\\n”,h[I].num, h[I].s); printf(“\\n”);

}

2、从键盘输入一批字符(回车键结束),存入一个磁盘文件abc.txt中 参考答案:

一、单项选择题

1、D 2、D 3、A 4、D 5、D 6、C 7、C 8、B 9、C 10、D

11、A 12、A 13、B 14、C 15、B 二、判断题 1、( × )2、( √ )3、( × )4、( √ )5、( √ ) 6、( √ )7、( √ )8、( √ )9、( × )10、( √ ) 11、( √ ) 12、( × ) 13、( × ) 14、( √ ) 15、( √ ) 三、写出程序的运行结果

1、 答案是:x=2 4、答案是:s=1234 2、答案是:m=15 5、答案是:testgood 3、答案是: 48

四、程序填空

1、答案是:①n = = 0 ②m%i= =0

2、答案是:

①date.year,date.month,date.day ②day_sum=0;

③day_sum+=1; 五、程序设计题

main( ) 1、参考答案:

STREC fun(STREC *a, char *b) { FILE *fp; { static STREC h={“”,-1}; char ch; int k; fp=fopen(“abc.txt”,”w”); for(k=0; k

if (!strcmp(a[k].num, b)) while(ch!=’\\n’) { h=a[k]; { fputc(fp, ch); break; ch=getchar(); } } return h; fclose(fp);

} } 2、参考答案: 作业C:

一、单项选择题

1、 有定义语句:int x, y;,若值11,变量y得到数值12,下面四组输入要通过

scanf(\语句使变量x得到数形式中,错误的是( ) A)11 12<回车> B)11, 12<回车> C)11,12<回车> D)11 ,<回车>12<回车> 2、若有语句int a=1,b=2,c=3;则以下值为0的表达式是( )

A)’a’&&’b’ B)a<=b C)((a>b)||(b

A)9,10 B)10,9 C)9,9 D)10,10 4、以下叙述正确的是()。

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符 C)可以把if定义为用户标识符,但不能把define定义为用户标识符 D)define和if都不能定义为用户标识符

5、运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为()。

main()

{ int m,n;

printf(\,n:\scanf(\,&m,&n\while(m!=n)

{ while(m>n) m-=n; while(n>m) n-=m; }

printf(\,m); }

A)m=3 B)m=2 C)m=1 D)m=0

6、运行下面的程序运行后,如果从键盘上输人5,则输出结果是()。

main() { int x;

scanf(\

if(x--<5) printf(\else printf(\}

A)3 B)4 C)5 D)6

7、定义函数时,若函数的类型缺省,则函数的默认类型是( )。

A)char B) void C)float D)int 8、设有说明int (* prt)[M]; 其中的标识符prt是( )。 A)M个指向整型变量的指针

B)指向M个整型变量的函数指针

C)一个指向具有M个整型元素的一维数组的指针

D)具有M个指针元素的一维指针数组,每个元素都只能指向整型变量 9、已知函数说明语句:void *fx( );则它的含义是( )。 A)函数fx的返回值是一个空类型的指针 B)函数fx的返回值可以是任意的数据类型 C)函数fx无返回值

D)指针fx指向一个函数,该函数无返回值

10、对于下述定义,不正确的叙述是( ) 。

union data { int i; char c; float f; }a, b;

A)变量a所占内存的长度等于成员f的长度 B)变量a的地址和它的各成员地址都是相同的 C)可以在定义时对a初始化

D)不能对变量a赋值,故a=b非法

11、C语言库函数fgets(str, n, fp)的功能是( ) 。

A)从文件fp中读取长度n的字符串存入

B)从文件fp中读取长度不超过n-1的字符串存入str指向的内存 C)从文件fp中读取n个字符串存入str指向的内存

D)从串str读取至多n个字符到文件fp

12、下述程序向文件输出的结果是( ) 。

#include 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) 5876273.000000-2278

C) 5875273-2278 D) 因文件为二进制文件而不可读 13、下面程序输出结果是( ) 。 #define MAX 5 int a[MAX],k; main()

{ printf(\ fun1()

{ for (k=0; k

a[k]=k+k;}

fun2()

{ int a[MAX],k; for (k=0;k<5;k++)

a[k]=k; }

fun3()

{ int k;

for (k=0;k

printf(\

A) 0 2 4 6 8 0 2 4 6 8 B) 0 2 4 6 8 0 1 2 3 4 C) 0 1 2 3 4 0 2 4 6 8 D) 0 1 2 3 4 0 1 2 3 4

14、已知:int x;执行下面的程序段后,输出结果为( )。

for (x=3; x6; x++)

printf ((x%2)? “**%d”: “##%d\\n”, x); A)**3 B)##3 C)##3 D)**3##4 ##4 **4 **4##5 **5 **5 ##5 15、说明语句“int (*r)( ):”的含义是( )。 A)r是一个指向一维数组的指针变量 B)r是指针变量,指向一个整型数据

C)r是一个指向函数的指针,该函数的返回值是一个整型 D)以上都不对 二、判断题

1、switch语句执行完一个case后面的语句后,流程控制转移到下一个case继续执行(2、if语句的条件表达式必须是逻辑表达式( )。

3、C语句的一个循环体内允许又包含另一个完整的循环结构( )。 4、C程序以函数为单位进行编译( )。

5、由多个源文件组成一个程序时,主函数只能出现在一个源文件中( )。

。 )