《湖大C语言程序设计作业及答案》由会员分享,可在线阅读,更多相关《湖大C语言程序设计作业及答案(19页珍藏版)》请在人人文库网上搜索。
1、作业A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?(B)A) int B) char C) long D) float 2、若x 为unsigned int 型变量,则执行下列语句后x值为( D )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*cnu。
2、m1.x) ;A) 0 B) 1 C) 3 D) 6 12、下述程序的输出结果是(B)。#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语言文件操作的结论中,(B)是正确的。A)对文件操作必须先关闭文件B)对文件操作必须先打开文件C)对文件操作顺序无要求D)对文件操作前必须先测试文件是否存在,然后再打开文件14、以下程序的输出结果是(C)。main() char ch34=123,456。
3、,78,*p3; 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(str。
4、cmp(c.name,d.name)0) d=c;printf(%ld%sn,d.sno,p-name);1、 答案是:0,1,2,5 2、 答案是:2 5 8 11 14 3、答案是: 4、答案是:x 5、答案是:2002Shangxian四、程序填空1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将缺省语句填上。main ( )float x, amax, amin;scanf (“%f”, &x);amax=x; amin=x;while ( )if ( ) amax =x;if ( ) amin =x;scanf (“%f”, &x);。
5、printf(“amax=%f, amin=%fn”, amax, amin);1、 答案是:x=0 xamax xmax) max=sum;maxi=i;average/=N;/*打印*/printf(“NO. name score1 score2 score3 averagen”);for(i=0; iunion un int 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 ; str。
6、uct ex x, y;则会发生的情况是(A)。A) 编译时错 B) 程序能顺利编译、连接、执行C) 能顺利编译和连接,但不能执行D) 能通过编译,但连接出错13、C语言可以处理的文件类型是(B)。A) 文本文件和数据文件B) 文本文件和二进制文件 C) 数据文件和二进制文件D) 数据代码文件14、下面的for语句( C )。for (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 s。
7、truct 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;for(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。
8、 s3 =good;printf(%sn,strcat(strcpy(s1,s2),s3);1、 答案是:x=2 2、答案是:m=15 3、答案是: 48 4、答案是:s=1234 5、答案是:testgood 四、程序填空1、下面程序输出100到200之间的素数,每行输出10个素数,请将缺省语句填上,使算法完整。#include “math.h”main ( )int m, k, i, n=0;for (m=101; m=k+1)printf(“%d”, m); n=n+1;1、答案是:n%10 = = 0 m%i= =02、一个函数days,实现求某月某日是该年的第多少天。由主函数将年、月。
9、、日传递给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 the %d th day in %d.”, date.month, date.day, day_。
10、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);2、答案是:date.year,date.month,date.dayday_sum=0;day_sum+=1;五、程序设计题1,学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一。
11、个,函数返回分数最低的学生的人数。#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=fu。
12、n(s,h);printf(“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的表达式是( D )A)a&b B)ab)|(b,则输出结果为( C )。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,则输出结果是。
13、( B )。main() int 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、下面程序输出结果是(A) 。 #define MAX 5int aMAX,k;main() printf(n); fun1(); fun3(); printf(t); fun2(); fun3(); fun1。
14、() for (k=0; k3; 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 。
15、StuClass;struct score 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。
16、.sub.comp);4、#include “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、 答案是:s=45. 2、 答案是:k=1 3、答案是: Hu Ming,M,83,80,90 4、答案是:789 5、答案是:result=4四、程序填空1、华氏和摄氏的转换公式为:c=5/9*(F-32),其中c表示摄氏的温度,F表示华氏的温度。要求输出从华氏0度到华氏300度,每。
17、隔20度输出一个值。main ( )int upper, step;float fahr = 0; celsius;upper = 300; step =20;while ( at) ;aver=aver+at; aver=aver-max-min;aver=aver/8.0;printf(“Aver=%5.2fn”,aver);2、答案是:maxmain() int x,y;for(x=0;x=10) break;if(b%3=1) b+=3; continue; printf(%dn,a);A)101B)6C)5D)46、函数调用语句“f(el,e2),(e3,e4,e5);”中参数的个数。
18、是(B)。A)1 B)2 C)4 D)5 7、选择出正确的说明语句( D )。A) int aa;B) int a3, 4C) int a ;D) int (*a)10;8、已知:char s100; int i; 则在下列引用数组元素的语句中,错误的表示形式是( D )。A) si+10B) *(s+i)C) *(i+s)D) *(s+)+i)9、对于如下的结构体定义,若对变量person的出生年份进行赋值,(C)是正确的赋值语句。struct date int year, month, day;struct worklist char name20;char sex;struct date birthday; person;A) year=1976 B) birthday.year=1976C)person.birthday.year=1976 D)person.year=1976 10、 若fp是指向某文件的指针,且已读到文件的末尾,则表达式feof(fp)的返回值是(C)。A) EOF B) 1 C) 非零值 D) NULL11、 已知一个文件中存放若干学生档案记录,其数据结构如下:struct st char num10;int age;fl。