《C程序设计》样卷2
一、单项选择题
1.以下不是c语言规定保留字的是( B )。
(A)float (B)integer (C)signed (D) unsigned
2.设int型变量x有初始值3,则表达式x++*5/10的值是( B ) (A)0 (B)1 (C)2 (D)3 3.下述程序执行后的输出结果是( A) #include
int x='f';
printf(\ }
(A)G (B)H (C)I (D)J
4.设有程序
#include
int i,j;
for (i=0,j=1;i<=j+1;i+=2,j--) printf(\ }
在运行上述程序时,for语句中循环体的执行次数是( C ) (A)3 (B)2 (3)1 (D)0
5.在下述选项时,没有构成死循环的程序是( D ) (A)int i=100 while (1) {
i=i0+1; if (i>100) break; }
(B)for (;;); (C)int k=1000; do {
++k;
}while (k>=10000); (D) int s=36;
while (s);--s;
6.假定a和b为int型变量,则执行下述语句组后,b的值为( d )。
a=1;聪明反被聪明误
b=10; do {
b-=a; a++;
} while (b--<0);
(A)9 (B)-2 (C)-1 (D)8 7.设有变量说明语句 int a=1,b=0;
则执行以下程序段的输出结果为( B )。 switch (a) {
case 1:
switch (b) {
case 0:printf(\ case 1:printf(\ }
case 2:printf(\ }
printf(\
(A)**0** (B)**0****2** (C)**0****1****2** (D)有语法错误
8.以下合法的数组说明是( A )。
(A)char a[6]=\ (C)char a=\9.下述程序代码中有语法错误的行是( D )。 int i,ia[10],ib[10]; /*第一行*/ for (i=0;i<=9;i++) /*第2行*/ ia[i]=0; /*第3行*/ ib=ia; /第4行*/
(A)第1行 (B)第2行 (C)第3行 (D)第4行 10.若已定义 int a[9],*p=a;
并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是( B )。
(A)p+1 (B)a+1 (C)a++ (D)++p 11.若有下述说明和语句 int **pp,*p,a=10,b=20; pp=&p; p=&a; p=&b;
printf(\ 则输出结果是( D)。
(A)10,10 (B)10,20 (C)20,10 (D)20,20 12.执行下述程序后的输出结果是( D )。 #include
int b=0;
static int c=3; a=c++,b++; return (a); }
main() {
int a=2,i,k;
for (i=0;i<2;i++) k=func(a++); printf(\ }
(A)3 (B)0 (C)5 (D)4
13.执行下述程序的输出结果是( A )。 #include
int aa[3][3]={{2},{4},{6}}; int i,*p=&aa[0][0]; for (i=0;i<2;i++) {
if (i==0)
aa[i][i+1]=*p+1; else ++p;
printf(\ }
printf(\ }
(A)23 (B)26 (C)33 (D)36
14.读下面的程序,正确的输出结果是( D ) #include
printf(\ }
。 f2(void) {
printf(\ } main() }
int a=10; f1(a); f2();
printf(\ }
(A)60,63,60 (B)20,23,23 (C)20,13,10 (D)20,53,10 15.执行下述程序的输出结果是( a )。 #include
int power(int x,int y); main() {
float a=2.6,b=3.4; int p;
p=power((int)a,(int)b); printf(\ }
int power(int x,int y) {
int i,p=1;
for (i=y;i>0;i--) p=p*x; return (p); }
(A)8 (B)9 (C)27 (D)81 16.已知函数scopy的定义如下 void scopy(char *s,char *t) {
while (*s++=*t++); }
则该函数的功能是( a )。
(A)串复制 (B)求串长度 (C)串比较 (D)串反向 17.执行下述程序的输出是( b )。 #include
struct complex {
int re;
int im; };
struct complex cp[3]={2,5,4,7}; cp[2].re=cp[0].re+cp[1].re; cp[2].im=im=cp[0].im+cp[1].im;
printf(\ }
(A)7 11 (B)6 12 (C)9 9 (D)12 6 18.执行下述程序的输出结果是( )。 #include
union {
int k; char i[2]; } *s,a; s=&a;
s->i[0]=0x39; s->i[1]=0x38;
printf(\ }
(A)3839 (B)3938 (C)380039 (D)390038 19.有以下程序
/* filename:file.c */ #include
main(int argc,char *argv[]) {
FILE *fp1,*fp2; if (argc<3) {
printf(\ exit(0); }
fp1=fopen(argv[1],\ fp2=fopen(argv[2],\ while (!feof(fp1))
fputc (fgetc(fp1),fp2); fclose(fp1); fclose(fp2); }
若在DOS提示符下输入如下的命令行 file abc.fil xyz.fil