一、单项选择题(每小题2分,共20分)
1.以下4组用户定义标识符中,全部合法的一组是()。
A)_totalclu_1sum
B)if-maxturb
C)txtREAL3COM
D)intk_2_001
2.以下程序的输出结果是()。
#include
voidmain()
{
inta=1,b=2,c=3;
printf(“%d”,c>b>a);
}
A)2B)1C)0D)3
3.以下正确的叙述是()。
A)在C语言中,main函数必须位于文件的开头
B)C语言每行中只能写一条语句
C)C语言本身没有输入、输出语句
D)对一个C语言进行编译预处理时,可检查宏定义的语法错误
4.设n=3;则n++的结果是()。
A)2B)3C)4D)5
5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。
A)0B)1C)2D)3
6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是()。
A)a>=10ora<=0B)a>=0|a<=10
C)a>=10&&a<=0D)a>=10‖a<=0
7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是()。
voidmain()
{
inta,b,c,d;
scanf(“%d,%d,%d%d”,&a,&b,&c,&d);
…
}
A)1234B)123,4
C)1,2,3,4D)1,2,34
8.有以下程序段:
voidmain()
{
intk=0;
while(k=1)k++;
}
则while循环执行的次数是()。
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
9.以下程序的输出结果是()。
#include
voidmain()
{
inta=5,b=4,c=6,d;
printf(“%d”,d=a>b?(a>c?a:c):b);
}
A)5B)4C)6D)不确定
10.下面是对数组a的初始化,其中不正确的是()。
A)a[5]={"ABCD"}B)a[5]={'A','B','C','D'}
C)a[5]=""D)a[5]="ABCDE"
二、填空题(每空1分,共10分)
1.结构化程序设计中的三种基本结构是[1]、[2]、[3]。
2.C程序的基本组成单位是[4]。
3.标识符的第一个字符必须是[5]或[6]。
4.实常数123.457的规范化指数表示形式是[7]。
5.表达式7/2的结果是[8]。表达式7%2的结果是[9]。
6.定义一个整型数组a[10],则下标最大的数组元素为[10]。
三、读下列程序,写出程序的运行结果(每题3分,共15分)
1.
voidmain()
{
charch=‘A’;
printf("%c,%d",ch,ch+3);
}
2.
voidmain()
{
inta=10;
printf(“%d”,++a);
printf(“%d”,a--);
}
3.
voidmain()
{intt=1;
for(i=1;i<5;i++) t=t*i;
printf("%d",t);
}
4.
voidf(int*a,intb)
{b=b+*a;*a=*a+b;}
voidmain()
{
intx=2,y=4;
int*p;
p=&x;
f(p,y);
printf("%d,%d",x,y);
}
5.
voidmain()
{
inta[]={1,2,3,4},i,j,s=0;
j=1;
for(i=3;i>=0;i--)
{
s=s+a[i]*j;
j=j*10;
}
printf("s=%d\n",s);
}
四、程序填空(每空3分,共21分)
1.下列程序段以函数swap()调用的形式实现两个变量值的互换,请填空完善程序。
voidswap(int*m,int*n)
{inttemp;
temp=[1];
[2];
*n=[3];
}
voidmain()
{intx,y;
scanf(“%d,%d”,&x,&y);
swap([4]);
printf(%d,%d”,x,y);
}
2.下面程序是计算1-3+5-7+……-99+101的值,请填空完善程序。
voidmain()
{
inti,m,t=1,s=0;
for(i=1;i<=101;[5])
{[6];s=s+m;[7];}
printf(“%d\n”,s);
}
五、编程题(前两小题各10分,第三小题14分,共34分)
1.编程求1!+2!+3!+……+50!的值。
2.用函数的递归调用方法求下列函数式的值(n由用户输入),递归公式为:
1(n=1)
total(n)=total(n-1)+n+1(n>1)
3.编写程序输出下列形式的杨辉三角形的前10行。
1
11
121