广东科学技术职业学院(计算机工程技术学院)
2010-2011学年第一学期期末
程序设计基础试卷(C )
(考试班级:10级软件技术等专业) (时间: 120 分钟 | 满分: 100 分)
---------------------------------------------------------------密------------------------------------封-------------------------------------线----------------------------------------
班内序号
考生姓名
学号 班级 试室号
注
意:密封线内不要答题
密封线外不要写姓名、学号、班级、违者试卷作零分处理
出卷教师:康玉忠
第1页(共5页)
注意:所有题目的答案均要求写在后面的答题纸上.
一.单项选择题(每题2分,共40分)
1.下列四组选项中,均是不合法的用户标识符的选项是 。
A. W P_0 do
B. b-a for int
C. float la0 _A
D. -123 abc TEMP
2.以下叙述不正确的是 。
A) 一个C 源程序必须包含一个main 函数 B) 一个C 源程序可由一个或多个函数组成 C) C 程序的基本组成单位是函数
D) 在C 程序中,注释说明只能位于一条语句的后面
3.为表示关系x ≥y ≥z ,应使用C 语言表达式( )。 A .(x>=y )&&(y>=z) B. (x>=y) and (y>=z) C .(x>=y>=z) D. (x>=z)&(y>=z) 4.以下叙述不正确的是 。
A. 在C 程序中,逗号运算符的优先级最低
B. 在C 程序中,MAX 和max 是两个不同的变量
C. 若a 和b 类型相同,在计算了赋值表达式a=b 后,b 中的值将放入a 中,二b 中的值不变
D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
5. 已知字母A 的ASCII 码为十进制数65,且c2为字符型,则执行语句c2=‘A ’+‘2’-‘0’后,c2中的值为 。
A) B
B) 68 C) 67 D) C
6.指出下面正确的输入语句( )。
A. scanf(“a=b=%d”,&a,&b) ;
B. scanf(“%d,%d”,&a,&b) ;
C. scanf(“c=”,c) ;
D. scanf(“% f%d\n”,&f) ;
7.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是。
A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2
8.判断char型变量ch是否为大写字母的正确表达式是。
A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’)
C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)
9.以下程序的输出结果是_________。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A)l B)0C)非0的数D)-1
10.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。
if(x>y) z=x; x=y; y=z;
A) x=10, y=20, z=30 B) x=20, y=30, z=30
C) x=20, y=30, z=10 D) x=20, y=30, z=20
11.以下程序的运行结果是。
main()
{ int m=5;
if(m++>5)
printf(“%d\n”,m);
else;
printf(“%d\n”,m--);
}
A) 4 B) 5 C) 6 D) 7
12.若运行时给变量x输入10,则以下程序的运行结果是。
main()
{ int x,y;
scanf(“%d”,&x);
y=x>12 ? x+10 : x-12;
printf(“%d\n”,y); }
A) 20 B) 0 C) -2 D) 1
13.以下程序的运行结果是。
main()
{ int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b); }
A) 6,1 B) 2,1 C) 6,0 D) 2,0
14.设int x=0,y=1;表达式(!x++ || y--)的值是( )。
A.0 B. 1 C. 2 D.-1
15.break语句不能出现在()语句中。
A.switch B.for C.while D.return
16.分析下面的代码片断,程序执行后count的值为()。
int i,j,count=0;
for(i=4;i>0;i--)
for(j=0;j<5;j++)
count++;
A.20
B. 16
C. 25
D.21
17.设有定义:int a,*pa=&a;以下scanf语句能正确为变量a读入数据的是______。
A. scanf("%d",B);
B. scanf("%d",a);
C. scanf("%d",pa); D . scanf("%d",*pa);
18.有switch语句如下:
switch (k)
{ case 1: s1; break;
case 2: s2; break;
case 3: s3; break;
default: s4;
} 与它的功能相同的程序段是()。
A.if (k = 1) s1; B.if (k == 1) s1;
if (k = 2 ) s2; if (k == 2) s2;
if (k = 3) s3; if (k == 3) s3;
else s4; else s4;
C.if (k == 1) s1; break; D.if (k == 1) s1;
if (k == 2) s2; break; if (k == 2) s2;
if (k == 3) s3; break; if (k == 3) s3;
else s4; if ( !((k == 1) || (k == 2) || (k == 3))) s4;
---------------------------------------------------------------密------------------------------------封-------------------------------------线----------------------------------------
注意:密封线内不要答题
密封线外不要写姓名、学号、班级、违者试卷作零分处理 第4页(共5页)
19.若有如下定义,则( )是对数组元素的正确引用。 int a[10] , *p ; p=a ;
A. *&a[10]
B. a[11]
C. *(p+10)
D. *p 20.若有说明语句: char s[20] = “international ”, *ps = s;
则下面选项中不能代表第1个字符t 的表达式是()。 A .ps+2 B .s[2] C .ps[2] D .ps += 2, *ps
二.判断题 (每题1分,共10分)
1. C 语言源程序文件通过了编译、连接之后,生成一个后缀为.EXE 的文件。 ( ) 2.若用双引号括住空格符,就是一个“空字符串”。( ) 3.x+=1等价于x++。 ( )
4.在C 语言中,非0数值都可表示逻辑真,数值0表示逻辑假。( ) 5.在函数main()中说明的变量的作用域是整个程序。( ) 6.在 C 程序中, APH 和 aph 代表不同的变量。( ) 7.没有返回值的函数一定没有参数。( ) 8.在 C 程序中,“{”、“}”可以不成对出现。( ) 9. 数组名可以作为参数进行传递。( )
10.在 C 程序中, 注释部分可以用两个相同的“/*”括起来。( )
三、程序分析题(每题4分,共20分)。
1.若从键盘输入48,则以下程序的输出结果是 【 】 。
main()
{ int a ;
s canf("%d",&a);
if(a>50)printf("%d ",a); if(a>40)printf("%d ",a); if(a>30)printf("%d ",a); }
2.阅读下面的程序,写出程序的运行结果【 】 #include
{
int x=1, total=0, y; while (x<=4) {
y = x*x; total += y; ++x; }
printf(“ %d\n ”, total); }
---------------------------------------------------------------密------------------------------------封-------------------------------------线----------------------------------------
注意:
密
封线内不要答题
密封线外不要写姓名、学号、班级、违者试卷作零分处理
3. 写出下列程序的运行结果【】。
main( )
{ int a[6]={2,4,6,8,10,12},i,j;
int b[6]={3,6,9,12,15,18};
for (i=0;i<6;i++) { for (j=0;j<6;j++)
if (a[i]==b[j]) break; if (j<6) printf("%d ",a[i]); } }
4.若有程序段如下:
int k, x[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9,10}; for (k=0; k<5; k++,k++)
printf ("%d ", x[k]);
那么执行后输出的结果是【 】。
5.写出下列程序的运行结果【 】。 fun(int a, int b) { if(a
return (b);
} main()
{ int x=10,y=6,z=2,r;
r=fun(fun(x,y),2*z); printf(“%d \n”,r); }
四.编程序(每题10分,共30分) 1.编程求:sum=1+3+5+7+ (99)
2.编写一个函数fac(n),函数功能求n 的阶乘,并从主函数中调用该函数求2!+4!+6!+8!。
3.某班有十位同学参加C 语言程序设计大赛,请从键盘上输入他们的成绩,并将他们的成绩由高到低进行排序后输出。
广东科学技术职业学院(计算机工程技术学院)
2010-2011学年第一学期期末
程序设计基础试卷答题纸
(考试班级:10级软件技术等专业) (时间: 120 分钟 | 满分: 100 分)
选择试卷类型( A / B )在相应的试卷字母上打勾
一、 单项选择题(每题2分,共40分) (把答案按序号填在对应的表格中)
二、 判断题 (每题1分,共10分)
---------------------------------------------------------------密------------------------------------封-------------------------------------线----------------------------------------
班内序号
考生姓名
学号 班级 试室号
注
意:密封线内不要答题
密封线外不要写姓名、学号、班级、违者试卷作零分处理
出卷教师:康玉忠
第1页(共5页)
1. 编程一:
2.编程二:=====================================================================
3.编程三:=====================================================================
广东科学技术职业学院(计算机工程技术学院)
2010-2011学年第一学期期末
程序设计基础试卷(C)答案
(考试班级:10级软件技术等专业)
(时间: 120 分钟|满分:100 分)
一、单项选择题(每题2分,共40分)(把答案按序号填在对应的表格中)
二、判断题(每题1分,共10分)
四.编程序(每题10分,共30分)
1.编程计算下列表达式:s=1+3+5+…+99
#include "stdio.h"
main()
{
int i,sum=0;
for(i=1;i<100;i++,i++)
sum+=i;
printf(“sum=%d\n”,sum);
}
2.编写一个函数fac(n),函数功能求n的阶乘,并从主函数中调用该函数求2!+4!+6!+8!。
#include "stdio.h"
float fac(int n)
{ int i;
float f=1.0;
for(i=1; i<=n; i++)
f=f*i;
return f;
}
main()
{ int i;
float sum=0;
for (i=2;i<=8;i++,i++)
sum=sum+fac(i) ;
printf("2!+4!+...+8!=%.0f",sum);
}
3.某班有十位同学参加C语言程序设计大赛,请从键盘上输入他们的成绩,并将他们的成绩由高到低进行排序后输出。
#include "stdio.h"
main()
{ int a[10],max,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<=9;i++) /*排序循环趟数*/
for(j=0;j<10-i;j++) /*i趟比较次数*/
if (a [j] < a [ j+1] ) /*相邻比较逆序交换*/
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
for(i=0; i<10; i++)
printf("%4d",a[i]);
}