概述
C语言程序设计
试题(开卷)
学号:
学习中心名称:
专业:
层次:
姓名:
题号
一
二
三
四
五
六
七
八
九
十
总分
得分
注意:所有答案都要写在答题卡上
一、单项选择题(20分,每题2分)
1.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式(a
A)1 B)2 C)3 D)0
2.for(i=0;i<10;i++)
if(i〈=5) break;
则循环结束后i的值为
A)0 B)1 C)5 D)10
3.下面正确的字符常量是:
A)“c” B)‘\’’ C)‘W’ D)‘’
4.C语言中,运算对象必须是整型的运算符是:
A)% B)/ C)* D)+
5.数字字符0的ASCII值为48,若有以下程序
main()
{
char a='1', b='2';
printf("%c,",b++);
printf("%dn",b-a);
}
程序运行后的输出结果是。
A)
3,2 B)50,2
C)2,2 D)2,50
6.以下选项中不能作为合法常量的是。
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0
7.以下说法正确的是
A)C程序总是从第一个定义的函数开始执行
B)在C程序中,要调用的函数必须在main()函数中定义
C)C程序总是从main()函数开始执行
D)C程序的main()函数必须放在程序的开始部分
8.若有说明:char c=‘72’;则变量c:
A)包含一个字符 B)包含2个字符
C)包含3个字符 D)说明不合法,c的值不确定
9.以下说法正确的是
A)C程序总是从第一个定义的函数开始执行
B)在C程序中,要调用的函数必须在main()函数中定义
C)C程序总是从main()函数开始执行
D)C程序的main()函数必须放在程序的开始部分
10.int *p1,*p2,a[10];
p1=a;
p2=&a[5];
则p2-p1的值为:
A)无法确定 B)10 C)5 D)12
二、填空题(30分,每空2分)
1.已知宏定义#define s 2+3
printf(”%d”,s*4);的输出结果是__(1)_____。
2.若已知a=10,b=20,则表达式!a
3.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。
void fun2(int *x,int *y)
{
int t;
t=*x; *x=*y; *y=t;
}
void fun1()
{
int a=20, b=30, c=25;
if(c>b) fun2(_____(3)_______);
if(a
if(a
}
4.有以下程序,执行后输出结果是
(6) 。
main( )
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf("%dn",t);
}
5.C语言函数是由函数头和函数体两部分组成。其中,函数头包括 (7) ,(8)
和(9) 。
6.表达式(a==b)&&(a>b)的值是___(10)____。
7.将下列字符串表示成C语言的字符串常量
C:TCLIB_____(11)_________
He said:"I’m a student."___________(12)_________________
85% student passed.______________(13)_____________
8.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中,请填空。
#include
#include
main()
{
int i,t=1,s=0;
for(i=1;i<=101;__(14)__)
{
s=s+i*t;
t=__(15)___;
}
}
三、写出程序的运行结果(30分,每题10分)
1.写出程序的运行结果
#include
main()
{
int i,
sum=0;
for(i=0;i<20; i++)
{
sum += i;
if((i%2==0) || (i%3==0) )
i += 5;
}
printf("%d", sum);
}
}
2.写出程序运行后的输出结果
#include
char *ss(char *s)
{
return
s+strlen(s)/2;
}
main( )
{ char *p,*str="abcdefgh";
p=ss(str);
printf("%sn",p);
}
3.(1)函数sub()的功能是什么?(2)写出程序运行的输出结果。
int sub(int num)
{
int i,product=1;
for(i=1;i<=num;i++)
product*=2;
return(product);
}
main()
{
int i,sum=0;
for(i=0;i<=3;i++)
{
sum+=sub(i);
printf("sum%d=%dn",i,sum);
}
}
四、编程(完形填空)(20分,每题10分)
1.找出100以内满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可以被11整除。
main()
{
int i,count=___(1)___;
printf("nthese numbers are:n");
for(i=1;i__(2)____100;i++)
if((i%7==0&&i%9!=0)
_(3)__(i%7!=0__(4)
_i%11==0))
{
count++;
printf("%10d",i);
if(count%4==0)
printf("___(5)_____");
}
}
2.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,例如:输入的两个字符串分别为abcd和abcfe,则输出为-2.请填空.
#include
main()
{
char str1[100],str2[100],c;
int i,s;
printf("ninput string1:n");
gets(str1);
printf("ninput string2:n");
gets(__(6)____);
i=0;
while((str1[i]==str2[i])&&(str1[i]!=_(7)__))
___(8)____;
s=____(9)_____;
printf("___(10)_____n",s);
}
答案:
一、单项选择题(20分,每题2分)
1.A 2.A 3.B 4.A 5.C 6.B 7.C 8.A 9.C 10.C
二、填空题(30分,每空2分)
(1) 14
(2) 1
(3) &b,&c
(4) &a,&c
(5) &a,&b
(6) 0
(7) 函数说明
(8) 函数名
(9) 圆括号中的形式参数
(10)
0
(11) "C:\TC\LIB"
(12) "C:\TC\LIB"
(13) "He said:"I' m a student.""
(14) i+=2
(15) -t
三、写出程序的运行结果(30分,每题10分)
1. 36
2. efgh
3. (1) 函数sub( )的功能是
根据当前实参i的值控制其for循环的次数,进一步控制运算:product*=2的次数。 (注:非标准答案,表述相近既可)
(2) 运行结果:
sum0=1
sum1=3
sum2=7
sum3=15
四、编程(完形填空)(20分,每题10分)
1.
(1) 0
(2) <=
(3) ||
(4) &&
(5) n
2.
(6) str2
(7) '