C语言程序设计 试卷一
[单选题]
11、假定X和Y为double型,则表达式X=2,Y=X+3/2的值是______。
A、3.500000
B、3
C、2.000000
D、3.000000
12、以下各选项企图说明一种新的类型名,其中正确的是______。
A、typedef v1 int;
B、typedef v2=int;
C、typedef int v3;
D、typedef v4: int
13、以下定义语句中,错误的是______。
A、int a[]={1,2};
B、char *a[3];
C、char s[10]="test";
D、int n=5,a[n];
14、假定 w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;
则该程序段执行后,m的值是______。
A、4
B、3
C、2
D、1
15、假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是______。
A、3
B、6
C、10
D、20
16、以下程序的输出结果是______。
main()
{ int num=0;
while(num<=2)
{ num++; printf("%d/n",num); }
}
A) B) C) D)
1 1 1 1
2 2 2
3 3
4
A、A)
B、B)
C、C)
D、D)
17、t为int类型,进入下面的循环之前,t的值为0。
while(t=1)
{ ......}
则以下叙述中正确的是______。
A、循环控制表达式的值为0
B、循环控制表达式的值为1
C、循环控制表达式不合法
D、以上说法都不对
18、在C语言中,合法的长整型常数是______。
A、OL
B、4962710
C、324562&
D、216D
19、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。
A、地址传递
B、单向值传递
C、由实参传给形,再由形参传回实参
D、传递方式由用户指定
20、以下有4组用户标识符,其中合法的一组是______。
A)FOR B)4d C)f2_G3 D)WORD
-sub DO IF void
Case Size abc define
A、A)
B、B)
C、C)
D、D)
21、以下程序的输出结果是______。
#define M(x,y,z) x*y+z
main()
{ int a=1,b=2,c=3;
printf("%d/n",M(a+b,b+c,c+a));
}
A、19
B、17
C、15
D、12
22、阅读以下程序:
main()
{ int x;
scanf("%d",&x);
if(x--<5)printf("%d/n",x);
else printf("%d/n",x++);
}
程序运行后,如果从键盘上输入5,则输出结果是______。
A、3
B、4
C、5
D、6
23、以下程序的输出结果是______。
main()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{ if(b>=10) break;
if(b%3==1)
{ b+=3; continue; }
}
printf("%d/n",a);
}
A、101
B、6
C、5
D、4
24、若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是______。
A、i=*p;
B、*p=*&j;
C、i=&j;
D、i=**p;
25、下面的程序执行后,文件test.t中内容是______。
#include <stdio.h>
void fun(char *fname,char *st)
{ FILE *myf; int i;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","new world"); fun("test.t","hello,");}
A、hello,
B、new worldhello
C、new world
D、hello,rld
26、整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是______。
A、X||Y
B、X|Y
C、X&Y
D、X^Y
27、以下数组定义中不正确的是______。
A、int a[2][3];
B、int b[][3]={0,1,2};
C、int c[100][100]={0};
D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
28、以下程序的输出结果是______。
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d/n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A、0650
B、1470
C、5430
D、输出值不定
29、以下程序的输出结果是______。
main()
{ int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A、258
B、741
C、852
D、369
30、以下程序的输出结果是______。
struct HAR
{ int x,y;struct HAR *p;} h[2];
main()
{ h[0].x=1;h[0].y=2;
h[1].x=3;h[1].y=4;
h[0].p=&h[1];h[1].p=h;
printf("%d%d/n",(h[0].p)->x,(h[1].p)->y);
}
A、12
B、23
C、14
D、32
31、以下函数值的类型是______。
fun(float x)
{ float y;
y=3*x-4;
return y;
}
A、int
B、不确定
C、void
D、float
32、以下程序的输出结果是______。
main()
{ char st[20]="hello/0/t//";
printf("%d%d/n",strlen(st),sizeof(st));
}
A、99
B、520
C、1320
D、2020
33、以下选项中合法的字符常量是______。
A、"B"
B、'/010'
C、68
D、D
34、设有以下函数;
f(int a)
{ int b=0;
static int c=3;
b++;c++;
return(a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是______。
main()
{ int a=2, i;
for(i=0;i<3;i++) printf("%d/n",f(a));
}
A) B) C) D)
7 7 7 7
8 9 10 7
9 11 13 7
A、A)
B、B)
C、C)
D、D)
35、以下选项中,不能正确赋值的是______。
A、char s1[10];s1="chest";
B、char s2[]={'C','t','e','s','t'};
C、char s3[20]="Chest";
D、char *s4="Chest/n";
36、以下程序输出正确的是______。
amovep(int *p,int (*a)[3],int n)
{ int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++){ *p=a[i][j];p++; }
}
main()
{ int *p,a[3][3]={{1,3,5},{2,4,6}};
p=(int*)malloc(100);
amovep(p,a,3);
printf("%d%d/n",p[2],p[5]);free(p);
}
A、56
B、25
C、34
D、程序错误
37、以下程序的输出结果是______。
main()
{ char c='z';
printf("%c",c-25);
}
A、a
B、z
C、z-25
D、y
38、以下程序的结果是______。
int a,b;
void fun()
{ a=100; b=200; }
main()
{ int a=5,b=7;
fun();
printf("%d%d/n",a,b);
}
A、100200
B、57
C、200100
D、75
39、以下程序的输出结果是______。
union myun
{ struct
{ int x,y,z;}u;
int k;
}a;
main()
{ a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf("%d/n",a.u.x);
}
A、4
B、5
C、6
D、0
40、以下合法的赋值语句是______。
A、X=Y=100
B、D--;
C、X+Y;
D、C=INT(A+B)
[填空题]
6、以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
file *myf; long f1;
myf=__ __("test.t","rb");
fseek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d/n",f1);
7、语句;X++;、++X;、X=X+1;、X=1+X;,执行后都使变量X中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)__ ___。
8、以上程序运行后的输出结果是______。
main()
{ int i=10,j=0;
do
{ j=j+i; i--;}
while(i>2);
printf("%d/n",j);
}
9、以下函数的功能是:求x的y次方,请填空。
double fun(double x,int y)
{ int i;
double z;
for(i=1,z=x;i<y;i++) z=z*__ __;
return z;
}
10、若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=______;j++;}
d[j]=0;
11、设有以下程序:
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d/n",a);
printf("b=%d/n",b);
}
执行该程序后,a的值为__ __,b的值为__ ___。
12、设有如下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为__ __。
13、若有如下结构体说明:
struct STRU
{ int a,b;char c: double d;
struct STRU *p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
______t[20]
14、以下程序段用于构成一个简单的单向链表,填空。
struct STRU
{ int x,y;
float rate;
______ p;
}a,b;
a.x=0;a.y=0;a.rate=0;a.p=&b;
b.x=0;b.y=0;b.rate=0;b.p=NULL;