C语言程序设计期中试卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计期中试卷
C 语言程序设计期中试卷
一、填空题(本大题30空,每空1分共30分)
1、C 语言中的基本数据类型包括、、三种。

2、C 语言中的逻辑运算符有、、三种。

3、若a =4,b =5,则! a & &b 的值为,b&&03的值为。

4、设a =10,则表达式a +=a -=2*3的值为。

5、设i =5,执行z =-i --后,z 的值为,i 的值为。

6、定义一个4行5列的整型数组VB 的方法。

7、定义int num[]={1,2,3,4,5},*p =&num[1],则表达式*p+3的值为, *(p+3)的值为。

8、设char str[10]="China",strlen(str)的值为。

9、逗号表达式
a =
b =3,6*a 的值为。

10、将算术表达式3
1лR2·h 书写为C 语言表达式。

11、用宏TB 来定义3.14 。

12、循环for (i=2;i<=12;i =i+2)结束后,i 的值为。

13、数组char b[15]表示它有个字符元素。

14、在C 语言中没有专为存储字符串的变量,但可以用字符型数组或存储字符串。

15、C 语言文件存储在磁盘上有两种形式,一种是按存储,另一种是按存储。

16、在C 语言中,变量的存储类别有四种,它们分别是自动变量、外部变量、和寄存器变量,其中自动变量又称为。

17、若有int a=10,b=5;则c=++a -b --;的值为。

18、定义一个数组int b[14],则b 数组一共有个元素,数组的最后一个元素是。

19、若有int a[10],*p ;p=&a[2];则后面语句使用*p 时是在引用。

20、表达式2sin30°的C语言表达式为。

二、选择题(本大题共20小题,每题2分,共40分)
1、设i=6,则执行j=i++; j=++i后,j的值为()
A、7
B、8
C、6
D、9
2、设x=2.5,a=4,y=7,则表达式x+a%3*(int)(x+y)%2/4的值为( )
A 、3.5
B 、4
C 、2
D 、2.5
3、下面的指数形式正确的是()
A 、4.6E
B 、E+4
C 、1.23E-10 D、4.3E6.8
4、指出下列非法的赋值语句()
A 、z=(a>b)?a:b;B、I=++(I+J);C、y=y*(z+1);D、unsigned z=45.67;
5、设x=4, y=5, z=2, 则表达式(x< p="">
A 、0 B、1 C 、4 D 、5
6、下列正确的语句是()
A 、int * p; p=&(a+b);
B 、y : =(a<="" p="">
C、for(i=0 , i<=5,i++);
D、int a,b=3;
7、初始化字符数组char str[ ]=“A book”,则可确定数组的长度为()
A 、6
B 、7
C 、8
D 、9
8、函数strlen(“ab c\de\”)的值为( )
A 、6
B 、10
C 、5
D 、8
9、设i=1 ; 则循环while(i++<5)结束后,i的值为()
A 、4
B 、5 C、6 D 、7
10、初始化数组int val[3] [3]={{1},{2,3},{3}}则val[1][1]的值为()
A 、1
B 、2 C、3 D 、{2,3}
11、在C语言程序中,main函数的位置()
A.、必须作为第一个函数B、必须作为最后一个函数
C、可以任意
D、必须放在它所调用的函数之后
12、下列不合法的常量是()
A、"program"
B、- e8
C、0x35
D、123
13、C语言中的基本数据类型所占存储空间长度的大小顺序是()
A、char<=int<=float<=double<=long
B、int<=char<=float<=long<=double
C、int <= long <=float<=double<= char
D、char<=int<=float<=long<= double
14、在C语言中,要求当a的值为奇数时,表达式的值为“真”,a的值为偶数
时为“假”。

以下不满足要求的表达式是()
A、a%2==1
B、!(a%2==0)
C、a%2
D、!(a%2)
15、执行语句:x=(a=3,b=a--);后,x,a,b的值依次是()
A、3,3,2
B、3,2,2
C、3,2,3
D、2,3,2
16、若有语句:char s[12]="string";则函数strlen(s)的值为()
A、6
B、7
C、11
D、12
17、在C语言中,下列说法正确的是()
A、不能使用do语句while(表达式);循环
B、do语句while(表达式);循环中,必须使用“break”语句退出循环
C、do语句while(表达式);循环中,当表达式为非零时将结束循环
D、do语句while(表达式);循环中,当表达式为零时将结束循环
18、在C语言中,若有x=15,y=40,m=100,则执行了语句:m=(x>y)?x:y;后,m的值是()
A、15
B、40
C、100
D、0.32
19、在定义int a[3][2]以后,对a的正确引用是()
A、a[0,0]
B、a[3][0]
C、a[2][2]
D、a[0][0]
20、在C语言中,函数隐含的类型是()
A、auto
B、static
C、int
D、void
三、判断题(在每小题的括号中,正确的划“√”;错误的划“×”,每题1分,共20分)
()1、在关系运算符中,>=和!=运算优先级相同。

()2、递增运算符++ 可用于常量或表达式,且在运算时自右向左执行。

()3、表达式i>j ? i : j等价于i>j? i : (j+1)而非(i > j ? i:j )+1。

()4、在C语言中,变量STU和stu指的是同一个变量。

()5、do-while语句在运行时至少要执行一次循环体,而while 语句可能一次循环体也不执行。

()6、在C语言中,函数可以没有参数。

()7、定义a=8,b,c ; 执行b=c=x ; x=y! =z后,变量x的值为1。

()8、设int a[10] ;int *p;则p=a或p=&a[0]都是合法的表达式。

()9、在调用函数时,数据可以进行双向传递,即可由实参传给形参,也可由形参传回实参。

()10、在for循环体中,for(i=1; ;i++)语句中省略了循环条件,则循环条件将无限制地进行。

()11、C程序由一个或多个函数组成,但必须有且只能有一个名为main 的主函数。

()12、在C语言中,数据类型混合运算时,进行同型转换的方式有强制转换和非强制转换两种。

()13、在C语言中,在对全部数组元素赋初值时,必须指明数
组的长度。

()14、在C语言中,字符型数据也可以像整型数据那样使用,它可以用来表示一些特定范围内的整数。

()15、在C语言中,for循环一般只能用于循环次数确定的循环。

()16、在C语言中,文件是存储在外部设备(如磁盘)上的程序的集合。

()17、在C语言中,关系运算中,如规定的关系成立,则其结果为数值1,反之为0,不会是其他值。

()18、考虑到运算符的优先级不同,w>x-y与w>(x-y)这两个关系式的值不同。

()19、C语言对二维数组中的各个元素在机内是按行的顺序存放的。

()20、在C语言中,所谓“指针”就是地址,一个变量的指针就是指该变量的地址。

四、阅读下列程序,写出运行结果(本大题共10小题,每题5分,共50分)
1、main( )
{ int i , z , n ;
z=1 ;
n=5;
for(i=1 ;i<=n;i++)
z=z*i ;
printf("z=%d",z) ;
}
输出:
2、main( )
{
scanf("% c",&a);
scanf("% c",&b);
printf("% c % c \",a,b);
}
输出:
3、main( )
{
int i ;
for(i=100; i>=0 ;i――)
if(i%13==0)
break;
printf("% d",i);
}
输出:
4、main( )
{
char * a, * p ;
a=" Turbo C " ;
p=a+4;
printf("% s \",a);
printf("% c \",*p);
}
输出:
5、mina( )
{
int a,b,c ;
scanf("% d ,% d",&a ,& b); c=min(a,b+20); printf("Min is % d",c);
}
min(int x,int y)
z=x<="" p="" x:y="">
return(z);
}
输出:
6、int a;
main()
{a=10; clrscr();
printf("a=%d\",a);
f();
printf("a=%d\",a);
}
f()
{int a;
a=20; }
运行结果是
7、main()
{int a1,a2; float b,c;
b=38.425; c=22.7;
a1=(int)(b+c); a2=(int)b%(int)c; printf("%d\",a1); printf("%d\",a2);
}
运行结果是
8、main()
{char s1[30]="Hello",s2[20]; clrscr();
printf("请输入姓名:");
gets(s2);
strcat(s1,s2);
puts(s1);
}
运行结果是
9、main()
{int i;
clrscr();
for(i=1;i<=20;i++)
if(i%5==0)
printf("%d\",i);
}
运行结果是
10、main()
{char c1,c2;
c1=65; c2=66;
printf("%c,%c",c1,c2);
printf("%d,%d",c1,c2);
}
运行结果是
五、将下面的程序补充完整(本大题共15空,每空2分,共30分)
1、求f(x)=xn
# include
main( )
{
int x,n ;
scanf("%d,%d",&x,&n);
printf("%d* * %d=%d\",x,n,power(x,n));
}
power(int x , int n)
{
int p , i ;
p= ;
for(i=1;i<=n;i++)
p= ;
return(p);
}
2、求1+2+3+……+n时超过2000的第1个n值及其和值。

main( )
{
int a,i ;
a=0;
for(i=1;i<=100; )
{
a+=i ;
if(a>2000)
;
}
printf("1+2+3+…+%d=%d\",i,a);
}
3、编写一程序,计算文件中字母出现的次数。

# include
main( )
{
int n=0,i=0;
char c,t[80]
while((c=getchar())! ='\')
{
t[i]= ;
if(('a'<=t[i] t[i]<='z')('A'<="z" }<="">
printf("The word is %d",n);
}
4、求数组中最大值的程序。

main()
{int a[10]={89,67,100,64,76,90,94,52,82,90};
int x,i;
clrscr();
;
i=1;
while(i<10)
{if(a[i]>x)
;
; }
printf("最大值为:%d\",x);
}
5、打印3到100之间所有的素数。

main()
{ int i,j;
for(i=3;i<=100;i++)
{for(j=2;j<i-1;j++)< p="">
if break;
if printf("%4d",i);
}
}
6、从三个红球,五个白球,六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。

#include
void main()
{int i,j,k;
printf("\ hong bai hei\");
for(i=0; ;i++)
for(j=1;j<=5;j++)
{k=8-i-j;
if( ) printf("%3d %3d %3d\",i,j,k);
}
}
六、编程(本大题共30分)
1、编写一程序,把三个整数中最大的打印出来。

(6分)要求:使用if语句,变量用a,b,c,x 。

2、编程查找某数是否在数组a中,找到了则输出提示信息“找到了,下标为:”。

(8分)要求:使用for循环,数组名用a[10],循环变量用i,查找的数用x 。

3、将数组a以1,5,3,2,7,9,数组b以5,3,9,4,6,1初始化,将对应项之积赋予数组c并显示该数组c。

(10分)要求:使用for循环,数组名用a,b,c,变量使用i 。

4、用循环语句计算下面S的值。

s=4+14+24+…+524。

(6分)
要求:变量使用s表示和i表示变量。

参考答案
一、填空题:每空1分,共30分。

1、整型、浮点型、字符型
2、逻辑与(&&)、逻辑或(||)、逻辑非(!)
3、0,1
4、8
5、-5,4
6、int VB[4][5];
7、5,5
8、5
9、18 10、3.14*R*R*h/3 11、#define TB 3.14 12、14 13、15 14、字符型指针变量15、ASCII码、二进制码16、静态变量、局部变量17、6 18、
14 b[13] 19、a[2]的值20、2*sin(3.14*30/180)
二、选择题,每题2分,共40分。

1、B
2、D
3、C
4、B
5、A
6、D
7、B
8、D
9、C 10、C
11、C 12、B 13、D 14、D 15、C
16、A 17、D 18、B 19、D 20、C
三、判断题,每题1分,共20分。

1、错
2、错
3、对
4、错
5、对
6、对
7、错
8、对
9、错10、对
11、对12、错13、错14、对15、对
16、错17、对18、错19、对20、对
四、运行结果,每题5分,共50分。

1、z=120
2、a
3、91
4、Turbo C,
o
5、Min is 6。

6、a=10
7、61
8、请输入姓名:9、5 10、A,B 65,66 a=10 16 Hello xxx 10
15
20
五、完善程序,每空2分,共30分。

1、1 p*x
2、i++ break
3、c && && ++n或n=n+1
4、x=a[0] x=a[i] i++或i=i+1
5、i%j==0 i%j!=0
6、i<=3 k>=0&&k<=6
六、编程题,共30分。

1、6分
#include
main()
{int a,b,c,x; scanf("%d%d%d",&a,&b,&c); if(a>b)
if(a>c) x=a;
else x=c;
else if(b>c)
x=b;
printf("x=%d",x); } Array 2、8分
#include
main()
{int i,x,a[10];
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
printf("请输入要查找的数:\");
scanf("%d",&x);
for(i=0;i<10;i++)
if(x==a[i])
{printf("找到了,顺序为:%d\",i+1);break; }
if(i=10)
printf("对不起,要找的数不在数组中。

");
}
3、10分
#include
static int a[]={1,5,3,2,7,9};
static int b[]={5,3,9,4,6,1};
main()
{int c[6],i; for(i=0;i<=5;i++) c[i]=a[i]*b[i]; for(i=0;i<=5;i++) printf("%d",c[i]); }
</i-1;j++)<>
<>。

相关文档
最新文档