C语言程序设计复习题
(2016-06-02 07:33:27)
标签:
教育 |
分类: 公共课 |
第一部分:基础部分
1、一个C语言的源程序中,(
(A)必须有一个主函数
(C)必须有主函数和其他函数
2、下列数据中,为字符串常量的是(
(A)‘A’
3、若有定义:int a=8,b=5,c;,执行语句c=a/b十0.4;后,c的值为(
(A)1.4
4、设有int x=11;则表达式(x++*l/3)的值为( A
(A)3
5、执行x=5>1+2&&2||2*4<4-!0后,x的值为( C
(A)-l
6、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子:(x)/(y×z)的c语言表达式是( A
(A)x/y*z
7、设有以下说明语句
struct ex
{int x;float y;
则下面的叙述不正确的是(
(A)struct是结构体类型的关键字 (B)example是结构体类型名
(C)x,y,z都是结构体成员名 (D)struct ex是结构体类型
8、假定w、x、y、z、m均为int型变量;有如下程序段:
w=1;x=2;y=3;z=4;
m=(w
则该程序段执行后,m的值是( D
(A)4
9、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B
(C)
10、以下定义语句中,错误的是 (
(A)int
(C)char
11、下列程厅执行后的输出结果是( A
(A)you&me
12、标有的语句的执行次数是(
13、若用数组名作为函数调用的实参,传递给形参的是( A
14、下列语句执行后的结果是( A
15、执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为 (
16、经过下面的语句后
17、若有以下说明和语句,则对pup中sex域的正确引用方式是(
{char name[20];
p=&pup;
(A)p.pup.sex
18、若已定义了如下的共用体类型变量x,则x所占用的内存字节数为(
union
{ int
(A)
19、若有下面的说明和定义:
struct
{ int
则sizeof(struct test)的值是 (
20、若要打开:A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是( B
21. 以下正确的C语言自定义标识符是__A____。
A. _1a B. 2a_
C. do D. a.12
22. 在C语言中,错误的常数表示是__D_____。
A. 0L B.-0x6aL
C. '6' D. 1.234E3.5
23. 设int a, x=2; 执行语句a=x>0?3*x:x=10;后,变量x的值是__B_____。
A. 1 B. 2
C. 6 D. 10
24.设有以下程序段:
int x=2,y=2,z=0,a;
a=++x||++y&&z++;
printf("%d,%d,%d\n",x,y,z);
执行后输出的结果是____C_____。
A. 2, 2, 0 B. 3, 3,1
C. 3, 2, 0 D. 3, 2, 1
25. 在C语言中,字符串"\\TOP\t\65\""的长度是___B____。
A. 5 B.7
C. 8 D. 12
26. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是___A______。
A. scanf("_",&x) B. scanf("]",&x);
C. scanf("%f",x); D. scanf("%s",&x);
27.逗号表达式a=2*6,a*3,a+5的值是___B______。
A. 12 B. 17
C.36 D. 41
28. C语言程序中,整型常量的书写形式不包括__A_______。
A. 二进制 B. 八进制
C. 十进制
29. 在C语言中,下列运算符中结合性属于自右向左的是___B______。
30. 设int x;,则与计算︱x︱等价的表达式是_____B____。
31. 执行下面的程序段后,k的值是___B____。
A. 3
C. 523 D. 325
32. 表达式的值为0的是____C_____。
33. 设int a=11, b=2;执行下述程序段后,变量a和b的值分别是___B____。
34. 在C语言中,下列错误的说法是__C_____。
35.int a[2][3]={{1},{2,3}};,则a[1][0]的值是____C_____。
36. 以下对二维数组a的正确说明是__C_______。.
37.设char s[10]=
A.6和5 B. 6和6
C. 10和5 D. 10和6
38. switch(表达式)语句中的“表达式”,允许的类型是___C______。
39. 在C语言中,形参的隐含存储类别是___A______。
40. 下列属于文件包含的命令是_____C____。
41. 设int i,j;
for(i=5;i;i--)
则循环体执行次数是___C_____。
A. 5 B.4
42.若有以下定义和语句:
A. strcpy(str2,"Hello");
B. strcpy(strl,"Hello");
C. str2=str1;
D. str1="Hello";
43.正确的变量定义是_A_______。
A. unsigned long d=1000;
B. float m1=m2=10.0;
C. char c1='A',c2=A;
D.
44.下面程序的输出结果是_C______。
void main()
{ int s,k;
}
A. 1 B. 9
45.下列描述中不正确的是__C_____。
A. 字符型数组中可以存放字符串
B. 可以对字符型数组进行整体输入、输出
C. 可以对实型数组进行整体输入、输出
D.
第二部分:简单程序
1、以下程序的运行情况是( D
2、若输入B,以下程序的运行结果为( C
main()
{ char grade;
default:printf("error");}
}
3.有如下程序
该程序的执行结果是( B
(A)321
4.有如下程序
int func(int a,int b)
{
main()
{int
该程序的输出结果是 ( D
5.以下程序的输出结果是( D
main()
{ int a,b;
}
(A)101
6.以下程序的输出结果是( B
7.下面的程序执行后,文件test.t中的内容是 (
#include
void fun(char *fname,char *st)
{ FILE *myf; int i;
myf=fopen(fname,"w");
for(i=0;i
fclose(myf);
}
main()
{ fun("test.t","new world");fun("test.t","hello,");}
8.以下程序的运行结果是(
#include
main(){
{ s[i+j]=t[j];
(A)
9.有如下程序
10.若已建立如下图所示的单向链表结构
在该链表中,指针p,s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是(
(A) p=p->next;s->next=p;p->next=s;
(B) p=p->next;s->next=p->next;p->next=s;
(C) s->next=NULL;p=p->next;p->next=s
(D) p=(*p).next;(*s).next=(*p).next; (*p).next =s;
11.请选择正确的运行结果填入( A
include
int x,y;
num()
{
}
main()
{ int
}
(A)
12.以下程序的输出结果是(
(A)19
13、以下程序的输出结果是:__B___
main( )
{
}
A、21,10 B、20,10 C、21,9 D、20,9
14、 以下程序的输出结果是:____B______
main( )
{
if
printf(“%d\n”,m);
else
printf(“%d \n”,m--);
}
A、7 B、6 C、5 D、4
15、 当a=1, b=3, c=5, d=4时,执行下面一段程序后,x的值为__B__
if
if(c
x=1;
else
if(b
x=2;
else
x=3;
else
x=6;
else x=7;
A、1 B、2 C、3 D、6
16、以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。出错的原因是____A___
#include
main( )
{ FILE
fout=fopen( ‘abc.txt’,’w’);
ch=fgetc(stdin);
while(ch!=’#’)
{fputc(ch,fout);
}
fclose(fout);
}
A、函数fopen调用形式有误 B、输入文件没有关闭
C、函数fgetc调用形式有误 D、文件指针stdin没有定义
17、 有以下程序,执行后输出结果是__C____
main()
{union
unsigned char c;
}ul;
ul.c=’A’;
printf(“%c\n”,ul.n);
}
A、产生语法错 B、随机值 C、A D、65
18、 有以下程序,执行后输出结果是__C___
main()
{ int
int
for(i=0; i<3; i++)
}
A、4
19、 以下程序运行后,输出结果是__C_____
int func(int a,
{ static int
i+=m+1;
m=i+a+b;
return(m);
}
main()
{ int
n=func(k, m);
n=func(k, m);
}
A、8,
20、 在执行以程序时,如果从键盘上输入:ABCdef,则输出结果为:_B___
#include
main( )
{ char
while((ch=getchar())!=’\n’)
{
ch=ch+32;
else
ch=ch-32;
printf(“%c”,ch);
}
printf(“\n”);
A、ABCdef
21、 有以下程序,执行后输出结果是__B__
int
{ if(*x<*y)
return x;
else
return
}
main( )
{ int a=7,b=8,*p,*q,*r;
p=&a;
q=&b;
r=f(p,q);
printf(“%d,%d,%d\n”,*p,*q,*r);
}
A、7, 8, 8 B、7, 8, 7 C、8, 7, 7 D、8, 7, 8
22、 下面程序的输出结果是__D___
fun(char *s, int p1, int p2)
{ char
while (p1
{ c=s[p1];
s[p1]=s[p2];
s[p2]=c;
p1++;p2--;
}
}
main( )
{
fun(a, 0, 2);
fun(a, 4, 6);
printf(“%s\n”,a);
}
A、ABCDEFG
23、 以下程序的运行结果是__D__
#include
long
{ long p;
if(x==0||x==1)
return (2);
p=x*func(x-1);
return (p);
}
main( )
{
printf(“%d \n”,func(4));
}
A、8 B、12 C、24 D、48
24、 下面的程序运行后,全局量t.x和t.s的正确结果为___C_______
struct
{ int
char
}t;
func(struct
{
t.s=”computer”;
return(0);
}
main()
{
func(t);
printf(“%d, %s ”, t.x, t.s);
}
A、10, computer
第三部分:填空
1:
int
main()
{int count(char _____(1)_
2:
为:int strcmp(char
设p1指向字符串s1,p2指向字符串s2。要求:当s1=s2时,返回值为0。当sl<>s2时,返回它们两者的第一个不同的字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如果sl
main()
{ int m;
strcmp(char
{ int i;
____(10)___ i=0___;
while(*(pl+i)==*(p2+i))
}
#include
main( )
{
float
while (___(1)___
{ sum=sum+1.0/i;
}
printf(“sum=%f”, sum);
}
4
word_num(char
{
int
for(i=0; str[i]!=____(3)_
if(____(4)__
else
{ word=1;
}
return(num);
}
5
void
{ int
for(i=0; s[i]; i++)
if(____(6)__
s[n++]=s[i];
s[n]=____(7)__
}
6
main( )
printf(“Enter
scanf(“%f”,&a);
while(a>=0.0 && n<1000)
x[n]=___(9)__
n++;
printf(“Output: \n”);
printf(“ave=%f\n”,ave);
for(i=0; i
if_____(10)__
1.对于int n=3;执行n+=n-=n*n;后n的值是9。( × )
2.在C语言中,定义int a=b=c=5;是错的,而int a,b,c; a=b=c=5;是正确的.( √ )
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
main( )
{int a,b;
printf("%d\n",b=(a=32767,a+1));}
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
#include
void main()
{
}
17
2、写出下面程序的运行结果。
#include
void inv (int x[ ], int n)
{int t,i,j;
}
void main()
{int i,a[5]={3,7,9,11,0};
}
0
3、写出下面程序的运行结果。(程序运行时,输入一个整数5)
#include
void main()
{
}
101
4、写出下面程序的运行结果。
#include
void main()
{
}
a=30
5、写出下面程序的运行结果。
#include
int a=100;
s()
{
}
void main()
{
}
10121