C语言程序设计试卷2
一、单选题
1.下列选项中正确的语句组是______。
A、char s[8]; s={"Beijing"}
B、char *s; s={"Beijing"}
C、char s[8]; s="Beijing"
D、char *s; s="Beijing"
2.下列函数定义中,会出现编译错误的是______。
A、max(int x,int y,int *z)
{*z=x>y ? x:y;}
B、int max(int x,y)
{int z;
z=x>y ? x:y;
return z;}
C、max(int x,int y)
{ int z;
z=x>y?x:y; return(z);}
D、int max(int x,int y)
{ return(x>y?x:y); }
3.有以下程序段
main()
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是______。
A、变量a的地址
B、变量b中的值
C、变量a中的值
D、变量b的地址
4.以下选项中可作为C语言合法整数的是______。
A、10110B
B、0386
C、0Xffa
D、x2a2
5.有定义语句:int x,y;。若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是______。
A、11 12↙
B、11,12↙
C、11, 12↙
D、11,↙12↙
6.以下不能定义为用户标识符的是______。
A、scanf
B、Void
C、_3com_
D、int
7.已定义以下函数:
fun(int *p)
{ return *p; }
该函数的返回值是______。
A、不确定的值
B、形参p中存放的值
C、形参p所指存储单元中的值
D、形参p的地址值
8.有以下程序
#include
main()
{ char str[][20]={"Hello","Beijing"},*p=str;
printf("%d/n",strlen(p+20));
}
程序运行后的输出结果是______。
A、0
B、5
C、7
D、20
9.有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。
struct node
{ int data;
struct node *next;
}*p,*q,*r;
data nextdata nextdata next
┌─┬─┐┌─┬─┐┌─┬─┐
─→││┼→││┼→││┼→
└─┴─┘└─┴─┘└─┴─┘
↑p↑q↑r
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是______。
A、r->next=q;q->next=r->next;p->next=r;
B、q->next=r->next;p->next=r;r->next=q;
C、p->next=r;q->next=r->next;r->next=p;
D、q->next=r->next;r->next=q;p->next=r;
10.要求以下程序的功能是计算:s=1+1/2+1/3+…+1/10。
main()
{ int n; float s;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f/n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是______。
A、s=1.0;
B、for(n=10;n>1;n--)
C、s=s+1/n;
D、printf("%6.4f/n",s);
11.以下不能正确定义二维数组的选项是______。
A、int a[2][2]={{1},{2}};
B、int a[][2]={1,2,3,4};
C、int a[2][2]={{1},2,3}
D、int a[2][]={{1,2},{3,4}}
12.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是______。
A、if (c
else if (b