C语言程序题.docx
《C语言程序题.docx》由会员分享,可在线阅读,更多相关《C语言程序题.docx(97页珍藏版)》请在冰豆网上搜索。
C语言程序题
C语言程序模拟
一、填空
1.实型变量的类型说明符有:
__________、____________.
2.表达式7+8>2&&25%5的结果是_______________________.
3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
Int n=0,ch;
Ch=getchar();
While(__________________))))
{ if(________________) n++;
4.putchar(c)函数的功能是是是_____________________________________.
5.int*p的含义是是是是___________________________________________.
6.C语言中数组的下标下限为___________________________.
7.定义fp为文件型指针变量的定义方法为_______________________.
8.数组int a[3][4];共定义了____________个数组元素。
二、单项选择题
1、下列属于整型常量的是________.
A、12 B、12.0 C、-12.0 D、10E10
2、不属于字符型常量的是_________.
A.‘A’ B、‘a’ C、“A” D、‘b’
3、下列表达式为关系表达式的为_________.(其中a为一整型变量)
A.3+4*5 B、a==10 C、a>0?
a:
-a D、a=1
4、下面不正确的赋值语句是_____________.
A.a=a+1 B、a==b C、a+=b D、a=1
5、下列对数组定义不正确的语句是______________.
A.intm[5]; B、charb[]={‘h’,‘e’};
C、inta[10]={1,6,8,4}; D、char p[];
6、若有以下定义,则______和______是对数组元素的正确引用。
int a[5],*p=a
A.*&a[6] B、*p+8 C、*(a+2) D、*p
7、执行下列语句后,a的值是______.
int a=8;
a+=a-=a*a;
A.-240 B、64 C、112 D、-112
8.指出下面正确的输入语句( )。
A. scanf(“a=b=%d”,&a,&b); B.scanf(“%d,%d”,&a,&b);
C. scanf(“%c”,c); D.scanf(“%f\n”,&f);
9.下面的变量说明中正确的是____________.
A.int:
a,b,c; B.int a;b;c;
C.int a,b,c D.int a,b,c;
10.C语言用( )表示逻辑“真”值。
A.True B. t或 y C. 非零整型值 D. 整型值0
11.若x=5,y=4则y*=x+5;y的值为( )。
A. 40 B. 20 C. 15 D. 30
13.C语言中以追加方式打开一个文件应选择_______________参数。
A.“r” B.“w”
C.“rb” D.“a”
14.Break语句的正确的用法是( )。
A.无论在任何情况下,都中断程序的执行,退出到系统下一层。
B.在多重循环中,只能退出最靠近的那一层循环语句。
C.跳出多重循环。
D.只能修改控制变量。
15.两个指针变量的值相等时,表明两个指针变量是________________.
A.占据同一内存单元。
B.指向同一内存单元地址或者都为空。
C.是两个空指针。
D.都没有指向。
16.字符串指针变量中存入的是________________.
A.字符串的首地址。
B. 字符串
C.第一个字符 D. 字符串变量。
17.以_______________个是不正确的描述。
A.不论在主函数还是自定义函数中,只要说明了变量,就可为其分配存贮单元。
B.在定义函数时,必须指定形参的类型。
C.形参和实参之间可以是值传递。
D.数组名可以作为参数进行传递。
18 表达式“1?
(0?
3:
2):
(10?
1:
0)”的值为_____________________.
A.3 B. 2 C. 1 D. 0
19.为表示关系x≥y≥z,应使用C语言表达式
A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z)
C.(x>=y>=z) D.(x>=z)&(y>=z)
20.以下说法中正确的是_______________.
A. C语言程序总是从第一个定义的函数开始执行。
B. 在C语言程序中,要调用的函数必须有main()函数中定义。
C. C语言程序总是从main()函数开始执行。
D. C语言程序中的main()函数必须放在程序的开始部分。
21.设有数组定义:
chararray[]=“China”;则数组所占的存贮空间为__________.
A.4个字节 B.5个字节 C.6个字节 D.7个字节
22.根据C语言的语法规则,下列________个是不合法标识符。
A.While B.Name C.Rern5 D._exam
三、读出下列程序,写出程序的运行结果
1.main()
{inta=8,b=1;
a=a+b;
b=a*b;
printf(“a=%d,b=%d”,a,b); }
该程序的运行结果是___________________________________.
2.main()
{inti,num[5];
for(i=0;i<5;i++)
num[i]=i*10-2;
printf(“%d”,num[3]); }
该程序的运行结果是___________________________________.
3.main()
{floatc,f;
c=30.0;
f=(6*c)/5+32;
printf(“f=%f”,f); }
该程序的运行结果是___________________________________.
4.main()
{inta=6095,b;
b=a_00;
printf(“%d”,b); }
该程序的运行结果是___________________________________.
5.#include “stdio.h”
main()
{inta[]={8,2,9,4,1},*p;
p=a;
*(p+2)+=2;
printf(“%d,%d”,*p,*(p+2));}
该程序的运行结果是___________________________________.
四、将下列程序中不正确的语句改正
1. main()
{ intk;
k=35555;
printf(“%d”,k); }
2. main()
{ int a,b;
scanf(“inputa,b:
”,a,b);
printf(“a=%d,b=%d”,a,b); }
3. main()
{intsum,k;
sum=0;
k=1;
while(k<=100)
sum=sum+k;
k++;
printf(“sum=%d\n”,sum); }
4. main()
{ int k,a(8);
for(k=0;k<10;k++)
scanf(“%d”,&a(k));
…… }
5. main()
scanf(“%d”,a);
if(a=1)
printf(“One\n”);}
五、编程题题
1.用程序计算下列表达式:
s=1!
+2!
+3!
+4!
2.从键盘上输入三个数,求出其中最大的一个数。
3.输入两个整数,调用函数stu()求两个数差的平方,返回主函数显示结果……
4.从键盘上输入10个评委的分数,去掉一个最高分,去掉一个最低分,求出其余8个人的平均分,输出平均分,最高分,最低分。
5.write.txt中,遇到回车键输入结束……(用“\n”表示回车键)
答案:
一、填空
1.float double
2.0
3.ch!
=‘\0’(ch>=‘a’&&ch<=‘z’)||(ch>=‘A’&&ch<=‘Z’)
4.将字符c所包含的值输出到标准的输出设备上。
5.定义一个整型的指针变量p
6.0
7.FILE *fp
8.12
二、单项选择题
1、A 2、C 3、B 4、B 5、D 6、CD 7、D
8、B 9、D 10、C 11、A. 13、D 14、B 22、A
15、A. 16、A 17、A 18、B 19、A 20、C 21、C
三、读出下列程序,写出程序的运行结果
1.a=9,b=9
2.28
3.f=68
4.95
5.8,11
四、将下列程序中不正确的语句改正
1.long intk; printf(“%ld”,k); }
2.scanf(“%d,%d”,a,b);
3.while(k<=100)
{sum=sum+k;
k++;}
4.int k,a[8];
scanf(“%d”,&a[k]);
5.if(a==1)
五、编程题
1.main()
{longint a,b,sum=0,p;
for(a=1;a<=4;a++)
{p=1;
for(b=1;b<=a;b++)
p*=b;
sum+=p; }
printf(“%ld”,sum);}
2、main()
{int a,b,c,max;
scanf(“%d,%d,%d”,&a,&b,&c);
if(a>b)
max=a;
else
max=b;
if(max
max=c;
printf(“max=%d”,max); }
3.int stu(inta,intb)
{intc;
c=a*a+b*b;
returnc; }
main()
{ int x,y,z;
scanf(“%d,%d”,&x,&y);
z=stu(x,y);
printf(“%d”,z); }
4.main()
{ float a[10],b,max,min,sum=0,aver;
for(b=0;b<10;b++)
scanf(“%f”,&a[b]);
max=min=a[0];
for(b=1;b<10;b++)
{if(a[b]>max)
max=a[b];
if(a[b]
min=a[b];
sum+=a[b]; }
sum=sum-max-min;
aver=sum/8;
printf(“%f,%f,%f”,aver,max,min); }
5.main()
{ FILE *fp;
Charch;
fp=fopen(“write.txt”,“w”);
ch=getchar();
while(ch!
=‘\n’)
{ fputc(ch,fp);
ch=getchar(); }
fclose(fp);
}
模拟6
一、单项选择题
1.各种基本数据类型的存贮空间正确的长度排列为__________.
A.Char
C.Char
2.下面的变量说明中_____________是正确的。
A.Char:
a,b,c; B.Chara;b;c;
C.Chara,b,c; D.Chara,b,c
3.main()
{ intn;
(n=6*4,n+6),n*2;
printf(“n=%d\n”,n);
} 此程序的输出结果是______________.
A.30 B. 24 C. 60 D. 48
4.若有如下定义,则__________和_________是对数组元素的正确的引用。
。
int a[10],*p;
p=a;
A. *&a[10] B. a[11] C. *(p+2) D.*p
5.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________
A. 0 B. 4 C. -4 D. 2
6.表达式y=(13>12?
15:
6>7?
8:
9)的值为____________.
A 9 B 8 C 15 D. 1
7.若x=5,y=3则y*=x+5;y的值为_______________.
A. 10 B. 20 C. 15 D. 30
8.C语言的输入与输出操作是由____________完成的。
A.输入语句 B.输出语句
C.输入与输出函数 D.输入与输出语句
9.语句for(k=0;k<5;++k)
{ if(k==3)continue;
printf(“%d”,k);
}的输出结果为___________.
A.012 B.0124 C. 01234 D. 没有输出结果
10.从循环体内某一层跳出,继续执行循环外的语句是:
___________.
A.break语句 B.return语句
C.continue语句 D.空语句。
11.Break语句的正确的用法是____________.
A.无论在任何情况下,都中断程序的执行,退出到系统下一层。
B.在多重循环中,只能退出最靠近的那一层循环语句。
C.跳出多重循环。
D.只能修改控制变量。
12.两个指针变量的值相等时,表明两个指针变量是__________.
A.占据同一内存单元。
B.指向同一内存单元地址或者都为空。
C.是两个空指针。
D.都没有指向。
13.不正确的指针概念是__________.
A.一个指针变量只能指向同一类型的变量。
B.一个变量的地址称为该变量的指针。
C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中。
D.指针变量可以赋任意整数,但不能赋浮点数。
14.设charch=‘A’;表达式ch!
(ch>=‘A’&&ch<=‘Z’)?
ch:
(ch+32)的值是_________.
A.A B. a C.Z D. z
15.根据C语言的语法规则,下列________个是不合法标识符。
A.While B.Name C.Rern5 D._exam
16.设单精度变量f,g均为5.0,使f为10.0的表达式是__________.
A. f+=g B. f-=g+5 C. f*=g-15 D. f/=g*10
17. 设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________.
A. 0 B. 4 C. –4 D.2
18.下列不是赋值语句的是__________.
A.A++ B. a= =b C. a+=b D. a=1
19.为表示关系x≥y≥z,应使用C语言表达式__________
A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z)
C.(x>=y>=z) D.(x>=z)&(y>=z)
20.设有数组定义:
chararray[]=“China”;则数组所占的存贮空间为__________.
A.4个字节 B.5个字节 C.6个字节 D.7个字节
二、写出下列程序的运行结果
1. main()
{ intx=10,y=10;
printf(“%d %d\n”,x——,——y); }
该程序的运行结果是_______________.
2.main()
{ int j,k,p,s;
s=0;
for(j=1;j<=3;j++)
{ p=1;
for(k=1;k<=j;k++)
p=p*k;
s=s+p;
}
printf(“s=%d\n”,s); }
该程序的运行结果是__________________.
3. #include “stdio.h”
main()
{inta[]={1,2,3,4,5},*p;
p=a;
*(p+2)+=2;
printf(“%d,%d”,*p,*(p+2)); }
该程序的运行结果是___________________________________.
4.main()
{ inta[]={2,4,6,8,10};
inty=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)
y+=*(p+x);
printf(“%d\n”,y); }
该程序的运行结果是________________.
5.main()
{ inta[5], k;
for(k=0;k<5;k++)
a[k]=10*k;
printf(“%d”,a[k-1]); }
该程序的运行结果是_________________.
三、判断题
1. 函数一般由函数的说明部分和函数体部分组成。
( )
2. C语言中数据类型只有整型、实型和字符型。
( )
3. 数组的下标从1开始。
( )
4. 假设有int a[10],*p;则P=&a[0]与p=a等价。
( )
5. getchar()函数的功能是从键盘上输入一个字符串。
( )
6. 在C语言中定义一个文件指针的方法为:
FILE *fp;( )
7. 构成数组的各个元素可以有不同的数据类型。
( )
8. C语言的数据类型只有int型和float型。
( )
9. 从循环体中退出只能使用goto语句。
( )
10.Continue语句的作用是继续程序中的下一个循环。
( )
四、编程题
1. 从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
2. 编程序求3,-30,20,6,77,2,0,-4,-7,99这十个数中最大值与最小值。
3. 输入两个整数,调用函数stu()求两个数和的立方,返回主函数显示结果。
4. 将文件file1.txt中的内容读出并显示到屏幕上。
5. 编程计算1-100之间的奇数和与偶数和。
答案:
一、单项选择题
1.C 2.C 3.C 4.CD 5.C 6.B 7.D 8.C
9.B 10.C 11.B 12.A 13 D 14.B 15.A 16. A.
17. C 18.B 19.A. 20.C.
二、写出下列程序的运行结果
1.10 9
2.S=9
3. 1,5
4.19
5.40
三、判断题
1. 对 2. 不对 3. 不对 4. 对 5.不对
6. 对 7. 不对