8. 下面的变量说明中(  )是正确的。
A.char:a,b,c;
B.char a; b; c;
C.char a, b, c;
D.char a, b, c
9. 若x=5,y=3 则y*=x+5; y的值为(  ).
A. 10
B. 20
C. 15
D. 30
10. 能正确表示a和b同时为正或同时为负的逻辑表达式(  )
A.(a>=0||b>=0)&&(a<0||b<0)
B. (a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0)
D.a*b>0
11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(  )
A.abs(x-y)<10
B.x-y>-10 && x-y<10
C.(x-y)<-10 || !(x-y)>10
D.(x-y)*(x-y)<100
12.有以下程序段 int k=0; while(k=1) k++;while循环执行的次数是(  )
A.无限次
B.有语法错误,不能执行
C.一次也不执行
D.执行1次
13.C语言中,数组元素下标的下限是(  )
A.1
B.0
C.视说明语句而定
D.无固定下限
14.定义一维数组时,[]内的下标表达式应该是()
A.整型表达式
B.表达式
C.整型常量表达式
D. 常量表达式
15.若用一维数组名作为调用函数的实参时,则传递给形参的是(  )
A.数组首元素的值
B.数组中全部元素的值
C.数组中首元素的地址
D.数组元素的个数
16.要使函数体内的某局部变量能保留函数前一次调用后的值,供下一次调用时继续使用,该变量的存储类型应是(  )
A.auto
B.static
<
D.Register
17.若有说明: int i,j=2,*p=&j; ,则完成i=j赋值功能的语句是(  )
A. i=*p;
B. p*=*&j;
C. i=&j;
D. i=**p;
18.有程序段int *p,a=10,b=1; p=&a;a=p+b;执行该程序段后,a的值为(  )
A.12
B.11
C.19
D.编译出错
19.设有以下说明语句 struct ex {int x;float y;char z;}example;则下面的叙述只不
正确的是(  )
A. struct是结构体类型的关键字
B. example是结构体类型名
C. x,y,z都是结构体成员名
D. struct ex是结构体类型
20.表达式0x13&0x17的值是(  )
c语言正确的字符常量A.0x17
B.0x13
C.0x18
D.0x2c
二、程序填空题(每空2分,共20分)
1.下列程序,判断从键盘上输入的一个字符,并按下列要求输出:
(1)若该字符是数字,输出字符串“0~9”;
(2)若该字符是大写字母,输出字符串“A~Z”;
(3)若该字符是小写字母,输出字符串“a~z”;
(4)若该字符是其它字符,输出字符串“!,@,……”;
main()
{char c; scanf(“%c”,&c);
if(‘0’<=c && c<=’9’)
else if(                ) printf(“A~Z\n”);
(‘a’<=c && c<=’z’) printf(“a~a\n”);
printf(“!,@,……”);
}
2.下列程序实现计算并输出数列:1,3,5,…,2n-1,…的前几项之和。main()
{long s,n,k,i;
scanf(“”,&n);
k=2*n-1;s=0;
for(i=1;i<=k;      ) s+=i;
printf(“1+3+…+%ld=%ld\n”,2*n-1,s);
}
3.下列程序从键盘输入10个数刺入数组a中,调用fmax求数组中的最大值并输出。
int fmax(int b[],int t)
{int i,imax;
imax=b[0];
for(i=1;i<t;i++)
if(b[i]>imax)          ;
return imax;
}
main()
{int a[10],i,jmax;
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
jmax=fmax(      ,10);
printf(“%d”,jmax);
}
4.下面程序的功能是将字符数组ch中第二维下标为偶数的元素取出后,构成一个十进制整数。
main()
{char ch[2][5]={“1213”,“8421”},*p[2];
int i,j,s=0;
for(i=0;i<2;i++) p[i]=        ;
for(i=0;i<2;i++)
for(j=0;p[i][j]>’\0’ && p[i][j]<=’9’;j+=2)
s=                              ;
printf(“%d\n”,s);
}
三、写出程序结果(每小题4分,共20分)
阅读下列程序,将输出结果写到各题右侧的空白处。
1. main()
{int a,b,c;
a=25;b=025;c=0x25;
printf(“%d %d %d\n”,a,b,c);
}
2. main()
{int n1,n2;
scanf(“%d”,&n2);
while(n2!=0)
{n1=n2%10;
n2=n2/10;
printf(“%d”,n1);
}
}
程序运行后,从键盘上输入1298 。
3. main()
{int i,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case 0: m++;n++;break;
case 10:n++;break;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。