安徽工贸职业技术学院(01/02)级补考c语言试题
班级: 姓名: 成绩:
一、选 择 题(共20分,每题2分)
(1)以下说法中正确的是
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
(2)C语言中最 简单的数据类型包括
A)整型、实型、逻辑型 B)整型、实型、字符型
C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型
(3)设a=6,b=4,则表达式b*=a+3的值为 。
3. A)3 B)18 C)27 D)36
(4)C语言中,运算对象必须是整型数的运算符是
A)% B)\
C)%和\ D)* *
(5)设有说明语句int a[10],则数组a包括了 个数组元素。
A)1 B)9 C)10 D)20
(6).以下程序的输出结果是
main()
{ int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A)10 10 B)9 9
C)9 10 D)10 9
(7)C语言规定,main函数的参数 。
A)只能有0个 B)只能有0个或一个
C)只能有0个或2个 D)可有任意个
(8)合法的数组定义是( )
A)int a[]="string"; B)int a[5]={0,1,2,3,4,5};
C)char s="string"; D)char a[]={0,1,2,3,4,5};
(9)下述对C语言字符数组的描术中错误的是
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
(10)为表示关系x≥y≥z,应使用C语言表达式
A)(x>=y)&&(y>=z) B(x>=y)AND(y>=z)
C)(x>=y>=z) D)(x>=y)&(y>=z)
(11) 若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段:
printf(“%d”,(X,Y));
上面程序片段的输出结果是
A)200 B)100 C)100 200 D)输出格式符不够,输出不确定的值
(12)指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是
A) EOF B) -1 C) 非零值 D) NULL
(13)设有如下定义:
int x=10,y=3,z;
则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是
A)1 B)0
C)4 D)3
(14) 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*p1+*p2; B)p2=k; C)p1=p2; D)k=*p1 *(*p2);
(15)设x为整型变量,p基类型为整型的指针变量,则正确的赋值表达式是 。
8. A)p=&x B)p=x C)*p=&x D)*p=*x
(16)说明语句char s=‘\t’,使s包含了几个字符? 。
2. A)1 B)2 C)3 D)说明有错
(17)执行下面的程序后,a的值是
#define SQR(X) (X)*(X)
main( )
{ int a=10,k=2,m=1;
a=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A)10 B)1 C)9 D)0
(18)rewind()函数的作用是 。
A)重新打开文件
B)使文件位置指针重新回到文件的开始
C)使文件位置指针重新回到文件的末
D)返回文件长度值
(19)Turbo C中,int型数据在存储器中占二个字节,则以下类型数据在存储器中占的字节数为: 。
struct test
{ int x;
float y;
char z;
} ;
A)2 B)3 C)6 D)7
(20)若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是
A) i= *P; B) *P=*&j; C) i=&j; D) i=* *p;
(二)阅读下列程序,写出运行结果(共20每题5分)
[程序1]
#include <stdio.h>
void main( )
{ int a=1,b=4,c=2;
a=(a+b)/c;
printf(“%d \n”,--a);
}
运行结果 :
[程序2]
void main ( )
{ char c1=67; /*‘A’的ASCII码值为65 */
if (‘A’ <=c1 && c1<=’Z’)
printf(“%d,%c”,c1,c1+1);
else printf(“%c”,c1); }
运行结果:
[程序3]
main ( )
{ int i, j;
static int a[10]={1,1,1,1,1,1,1,1,1,1};
for (i=0;i<10;i++)
for (j=0;j<i;j++)
a[i]=a[i]+a[j];
for (i=0;i<10;i++)
printf(“%d,”,a[i]);
}
运行结果:
[程序4]
void main ( )
{ static int a[10],i;
for (i=0;i<10;i++)
a[i]=i+1;
for (i=0;i<10;i=i+2)
printf(“%d”,*(a+i));
}
运行结果:
四、编程题(共40分)
1. 从键盘输入3个整数,输出其中最大数。(8分)
2. 由键盘输入三个数a,b,c,计算以这三个数为边长的三角形面积。(8分)
3. 从键盘输入10个浮点数,输出其平均值及所有低于平均值的数。(12分)
4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3 (12分)