1、下述对C语言字符数组的描术中错误的是
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
2、为表示关系x≥y≥z,应使用C语言表达式
A)(x>=y)&&(y>=z) B(x>=y)AND(y>=z)
C)(x>=y>=z) D)(x>=y)&(y>=z)
3、设有如下定义:
int x=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));
的输出结果是
A)1 B)0
C)4 D)3
4、以下程序的输出结果是
main()
{ int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A)10 10 B)9 9
C)9 10 D)10 9
5、定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是
for(i=0;i<3;i++) printf("%d",x[i][2-i]);
A)1 5 9 B)1 4 7
C)3 5 7 D)3 6 9
6、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A)a<>0 B)!a
C)a=0 D)a
7、阅读程序:
#include
main()
{int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n",p+9);
}
该程序有两个printf 语句, 如果第一个printf 语句输出的是194(十六进制), 则第二个printf语句的输出结果是
A)203 B)204
C)1a4 D)1a6
8、设有如下函数定义:
int f(char *s)
{ char *p=s;
while(*p!='\0') p++;
return(p-s);
}
如果在主程序中用下面的语句调用上述函数,则输出结果为
printf("%d\n",f("goodbey!"));
A)3 B)6
C)8 D)0
9、以下说法中正确的是
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
10、执行下面的程序后,a的值为
main()
{ int a,b;
for (a=1,b=1;a<=100;a++)
{ if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
}
A)7 B)8
C)9 D)10
11、以下程序段的输出结果是
int x=3;
do
{ printf("%3d",x-=2);}
while(!(--x));
A)1 B)3 0
C)1 -2 D)死循环
12、定义如下变量:
int n=10;
则下列循环的输出结果是
while(n>7)
{ n--;
printf("%d\n",n);
}
A)10 B)9 C)10 D)9
9 8 9 8
8 7 8 7
7 6
13、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是
main( )
{ int x;
scanf("%d",&x);
if(x + + 〉 5)printf("%d",x);
else printf("%d\n",x - -);
}
A)7和5 B)6和3 C)7和4 D)6和4
14、设有如下定义:
char *aa[2]={"abcd","ABCD"};
则以下就法中正确的是
A)aa数组元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
15、以下程序的输出结果是
main( )
{ int a=-1,b=4,k;
k=(++a〈0〉&&!(b - -〈=0〉;
printf("%d%d%d\n",k,a,b);
}
A)104 B)103 C)003 D)004
16、设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a,*p=a[0]
则下列能够正确表示数组元素a[1][2]的表达式是
A)*((*prt+1)[2]) B)*(*(p+5))
C)(*prt+1)+2 D)*(*(a+1)+2)
17、下列程序的输出结果是
main( )
{ char*p1,*p2,str[50]="xyz";
p1="abcd";
p2="ABCD";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
}
A)xyabcAB B)abcABz
C)ABabcz D)xycdBCD
18、执行下面的程序后,a的值是
#define SQR(X) X*X
main( )
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A)10 B)1 C)9 D)0
19、下列程序执行后输出的结果是
#include 〈stdio.h〉
f(int a)
{ int b=0;
static c=3;
a=c++,b++;
return(a);
}
main( )
{ int a=2,i,k;
for(i=0;i〈2;i=++)
k=f(a++);
printf("%d\n",k);
}
A)3 B)0 C)5 D)4
20、下列程序的输出结果是
main( )
{ int a[5]={2,4,6,8,10},*p,**k;
p=a;
k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
}
A)4 4 B)2 2 C)2 4 D)4 6
21、阅读下列程序:
main( )
{ int n[3],i,j,k;
for(i=0;i〈3;i++)
n[i]=0;
k=2;
for (i=0;i〈k;i++)
for (j=0;j〈k;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
}
下述程序运行后输出结果是
A)2 B)1 C)0 D)3
22、字符'0'的ASCII码的十进制数为48,则以下程序的输出结果是
#include〈stdio.h〉
main( )
{ union
{ int i[2];
long k;
char c[4];}r,*s=&r;
s->i[0]=0x39;
s->i[1]=0x38;
printf("%c\n",s->c[0])
}
A)39 B)9 C)38 D)8
23、设有以下定义:
typedef union
{ long i;int k[5];char c;}DATE;
struct date
{ int cat;DATE cow;double dog;}too;
DATE max;
则下列语句的执行结果是
printf("%d",sizeof(struct date)+sizeof(max));
A)25 B)30 C)18 D)8
24、执行以下程序后,y的值是
main ( )
{ int a[]={2,4,6,8,10};
int y=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)
y + = * (p + x);
printf("%d\n",y);
}
A)17 B)18 C)19 D)20
25、下列程序执行后输出的结果是
int d=1;
fun (int q)
{ int d=5;
d + =p + +;
printf("%d".d);
}
main( )
{ int a=3;
fun(a);
d + = a + +;
printf("%d\n",d);
}
A)8 4 B)9 6 C)9 4 D)8 5
26、下列程序的输出结果是
main( )
{ char ch[2][5]={"6934“,"8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);}
A)6385 B)69825 C)63825 D)693825
27、以下程序的输出结果是
fut (int **s,int p[2][3])
{ **s=p[1][1]; }
main( )
{ int a[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&p,a);
primtf("%d\n",*p);
}
A)1 B)7 C)9 D)11
28、以下程序的输出结果是
#include"ctype.h"
space (char *str)
{ int i,t;char ts[81];
for(i=0,t=0;str[i]!='\0';i+=2)
if(! isspace(*str+i)&&(*(str+i)!='a'))
ts[t++]=toupper(str[i]);
ts[t]='\0';
strcpy(str,ts);
}
mian( )
{ char s[81]={"a b c d e f g"};
space(s);
puts(s);
}
A)abcdeg B)bcde C)ABCDE D)BCDEFG
29、下列程序的输出结果是( ).
int ast(int x,int y,int * cp,int * dp)
{ *cp=x+++y;
*dp=x-y--;
}
main()
{ int a,b,c,d;
a=4;b=3;
ast(a,b,&c,&d);
printf("%d %d %d %d\n",a,b,c,d);
}
30、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.
main()
{ float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while( )
{ if(x>amax)amax=x;
if( )amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
31、以下程序的功能是:从键盘输入若干字符写入到指定文件中,当输入字符“#”时结束。
main()
{ FILE * fp;
char ch,fname[10];
printf("lnput the name of file\n");
gets(fname);
if((fp= )==NULL)
{ printf("Cannot open\n"); exit(0);}
printf("Enter data\n");
while( )
fputc(ch,fp);
fclose(fp);
}
32、以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾.单向链表的头指针作为函数值返回.请填空:
#include
struct list
{ char data;
struct list * next;
};
struct list *creat()
{ struct list * h,* p,* q;
char ch;
h= malloc(sizeof(struct list));
p=q=h;
ch=getchar();
while(ch!='?')
{ p= malloc(sizeof(struct list));
p->data=ch;
q->next=p;
q=p;
ch=getchar();
}
;
;
}