c语言期末复习试题,上机练习

发布时间 : 星期五 文章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 (2) ) { t=str[i];

______(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() {

联系合同范文客服:xxxxx#qq.com(#替换为@)