发布时间 : 星期五 文章c语言期末复习试题,上机练习更新完毕开始阅读
10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。( ) 三 选择题(20分,每题2分)
1.若有代数式 ,则错误的C语言表达式是( )。 A a*e/c/b B a*e/b/c C a*e/b*c D a/b/c*e 2.以下程序的输出结果是( )。 main( ) { int a=7,b=5;
printf(“%d\\n”,b=b/a); }
A 不确定值 B 5 C 1 D 0 3.以下程序的输出结果是( )。 main()
{ int k1=1,k2=2,k3=3,x=15; if(!k1) x--;
else if(k2) if(k3) x=4;else x=3; printf(“x=%d\\n”,x);
}
A x=4 B x=15 C x=14 D x=3 4. 以下程序的输出结果是( )。 main()
{ char s1[20]=“China”,s2[20]=“for”,s[10];
if(strcmp(s1,s2)) printf(“%s\\n”, strcat(s2,s1)); else printf(“%d\\n”,strlen(s1)); }
A Chinafor B 5 C forChina D 3 5.C语言中函数调用的方式有( )。
A 函数调用作为语句1种 B 函数调用作为函数表达式1种
C 函数调用作为语句或函数表达式2种 D 函数调用作为语句、函数表达式或函数参数3种
6.关于return语句,下列正确的说法是( )。 A 可以在同一函数中出现多次 B 必须在每个函数中出现 C 只能在除主函数之外的函数中出现一次 D 在主函数中不能出现
7.已知职工记录描述如下,设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是( )。 struct worker
{ int no; char name[20]; char sex; struct birth{ int day; int month; int year;}a; };
struct worker w;
A day=25;month=10;year=1993;
B w.birth.day=25; w.birth.month=10; w.birth.year=1993;
C w.day=25; w.month=10; w.year=1993;
D w.a.day=25; w.a.month=10; w.a.year=1993; 8.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是( )。
A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针 C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数 9.若有下面的变量定义,以下语句中合法的是( )。 int i,a[10],*p;
A p=a+2; B p=a[5]; C p=a[2]+2; D p=&(i+2); 10.若有以下的定义和语句,则值为12的表达式是( )。
struct wc{ int a;int *b;}*p;int x0[]={11,12},x1[]={31,32}; static struct wc x[2]={100,x0,300,x1};p=x;
A *++p->b B ++p->a C p->b D *(p++)->b 四 写出下列程序的运行结果(25分,每题5分) 1.main()
{ int number=0;
while(number++<=1) printf(\ printf(\ }
2.#define N 7 main()
{ int i,j,a[N][N];
for(i=1;i { a[i][i]=1; a[i][1]=1; } for(i=3;i for(j=2;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(j=1;j<=4;j++) printf(\ printf(\ } 3.hcf(int u,int v) { int a,b,c,r; if(u>v) { c=u; u=v; v=c; } a=u; b=v; while((r=b%a)!=0) { b=a; a=r;} return(a); } main() { int u,v,h,l; u=32; v=48; h=hcf(u,v); printf(\ } 4.main() { int a[]={1,2,3,4,5,6},*p; p=a; *(p+3)+=2; printf(\ } 5.main() { int y; fac(4,&y); printf(“y=%d\\n”,y); } fac(int n,int *t) { int s; if((n==1)||(n==0)) *t=1; else { fac(n-1,&s); t=n*s; } } 五 阅读下列程序,在 处填入适当内容,使程序完整(25分,每个空2分) 1.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。) main() { int i,a,m; for(i=1;i<1000;i++) { for(m=0,a=l;a<=i/2;a++) if(!(i%a)) (1) ; if( (2) ) printf(\ } } 2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。 #define N 10 char str[N]; main() { int i,flag; for(i=0;i<10;i++) scanf(\ sort(_(1)__); for(i=0;i for(j=1;j ______(3)______; ______(4)______; } } 3.3.将一个磁盘文件中的信息复制到另一个磁盘文件中。 #include \ main() { (1) *in,*out; char ch,infile[10],outfile[10]; printf(\ scanf(\ printf(\ scanf(\ if((in=fopen(infile,\ { printf(\ exit(0); } if((out=fopen(outfile,\ { printf(\ exit(0); } while(!feof(in)) fputc( (2) ,out); (3) ; (4) ; } 4.4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。 #define N 10 main() {