《 程序设计基础(C)》模拟试卷
一. 试题一(40分,每小题4分)
按题目要求解答下列各小题
1. 定义一个大小为6的数组,并且使数组的值都为0。 int a[6]={0};
2. 写出执行如下程序段后的输出结果。 char a[]=“hello”,*p ; p = a+2; printf(“%s”, p); 答案:llo
3. 假设x 是一个double变量,而不等式 0≤x<1 需要作为下列if-else语句的条件,应该使用什么样的逻辑表达式?把它填写在下面圆括号内。 if ( x>=0 && x<=0 )
{
printf(“True\\n”); } else {
printf(“False\\n”); }
4. 用文字描述以下程序完成的功能。 #include”stdio.h” main() { int n,t; t=1;
for (n=1;n<=10;n++)
t = t * n ;
printf(“%d\\n”,t);
第 1 页
}
答:该程序是计算10的阶乘。
5. 有以下结构体定义: struct person {
char name[9]; int age; };
Struct person
class[4]={“John”,17,”Paul”,19,”Mary”,18,”adam”,16};请写出输出class中”Mary”的输出语句。 答:printf(“%s”,class[2].name); 6. 求下面算术表达式的值 (1) x+a%3*(int)(x+y)%2/4
设x=2.5,a=7,y=4.7 答:2.5
(2) (double)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
答:3.5
7. 写出表示如下运算的表达式(平方根函数为sqrt(x))。
6a?5b?7a?b2
答:(6*a+5*sqrt(b-7))/(a-b*b)
8. 简单说明double类型的数值用什么运算符可以转变为int类型? 答:强制类型转换运算符
9. 以下语句中哪一行是非法的,简单说明理由。
第 2 页
1:x =(2 != i); 2:x= j++; 3: (x= 2) = 6; 4: x=(0 答:第3行是非法的,复制符号左边不能为表达式。 10. 举例说明运算符 & 的作用。 答: int a; scanf(“%d”,&a); &主要用于表示取地址的运算符。二. 试题二(24分,每小题6分) 阅读下列程序,写出运行结果。 1. 【程序1】 #include for(k= 2.2; k<32.0; k=k+10.0) { if (k<=0) printf(\ else if (k<3) m=11; else if (k<10) m=(k-3)*2.0+11; else m=(k-10)*3.0+14.7; printf(\ } } 第 3 页 答: fare=11.00 fare=21.30 fare=51.30 2. 【程序2】 #include ***** **** *** ** * 3. 【程序3】 #include \main() { int a[6],i; for(i=0;i<6;i++) a[i]=9*(i+4) % 5; for(i=5;i>=0;i--) printf(\ printf(\ 第 4 页

