当前位置:首页 > C语言试题-2011-11-27
一、单项选择题:(20分,每题2分) 1. 以下不属于流程控制语句的是__A____
A.表达式语句 a. 0.0 1e1 4.5
b. 4 ‘a’ 1.2e-2 c. 0.314 e1 ‘b’ d. 0.2345e9 ‘\\234’ 234 a.‘\\t‘ b. ‘\\018’
d. ‘\\xaa’
B选择语句 C转移语句 D循环语句
2. 在C语言中下面数据表示错误的一组是___C___
3. 下列选择中非法的转义字符是____D__ c. ‘\\n’
4. C语言程序中可以对程序进行注释,注释部分必须用符合___C___括起来。 a.‘{’和’}‘ b. ‘[’ 和‘]’
二.填空题(20分,没空1分)
1. 程序设计的三种基本结构分别是顺序结构、选择结构、循环结构。 2. C程序是以函数为基本单位,而函数由函数说明和函数体两部分组成。
3. 一个整型数据在计算机中是以_二进制补码形式表示,C语言字符型(char)数据在内存中
存储的字符的ASCII码。
4. 用格式符s输出字符时,从输出项提供的地址开始输出,知道遇到字符串结束符\\n为止。 5. 从函数的形式看,可将函数分为有参和无参两种。
6. 当很熟没有指明返回值,活没有返回语句时,函数执行后将返回一个null。Void类型又称
为空类型。
7. C语言中函数和函数之间进行数据传递采用值、地址和全局变量三种形式。 8. 关系运算的结果都是逻辑值,即真(true)和假(false)。 9. 一个完整的C程序至少要有一个main函数。
10. 在程序中有int a=3,b=4;b=(a++)+(a++)+(a++),则执行完后 a=__6___,b=___12___。 三、简答题(18分,第一题6分,第2题12分)
c. “/*” 和 “\\*” d. “*/”和 printf{“%d,%d”,b,b+1};
a. 98,b b,语句不存在 c. 98,99 d. 98,c a. P++ b. X++ c.*(P++) d. &X++ 则while中的!i可用___c___代替
a. i==0 b.i!=1 c. i!=0 d. 以上均不对 a. 19 b. 18 c. 23 d.22 a. 2 b. 3 c. 4 d.无确定值 a.数组的首地址 b. 数组第一元素的值 c.数组中全部元素的值 d. 数组元素的个数
“/*”
5. 已知字符’b’的ASCII码为98,执行下列语句后输出为___c___
6. 若变量已正确定义并且指针P已经指向某个变量X,则(*P)++ 相当于___b___ 7. 若有:do{i=a-b++;printf(“%d,i”);}while(!i);
8. 程序段:int x=023; printf(“%d\\n”,--x);的输出是__D____
9. 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是____B__ 10. 若用数组名作为函数调用的实参,传递给形参的是___A___
1. 简要叙述下while语句、do while语句与for语句的区别。
答:while for语句是“当型”循环,即“先判断 ,后执行”
do_while 是“直到型”,即“先执行,后判断 ” for 用于明确循环次数
while do_while用于不明确循环次数
2. 给定两个正整数m和n(m>=n)求他们的最大公约数。
答:
#include
scanf(“%d,%d”,&m,&n);
if(m%n==0) printf(“%d/%d 最大公约数\\n”,m,n); else printf(“%d/%d no\\n”,m,n); }
3. 用传统流程图和N-S流程图分别表示该算法。 四、阅读程序题(22分,1题6分、2题3题8分)
写出下列程序的运行结果,一个空格用一个口表示,程序中一个口代表一个空格。 1、 #include
main() {
printf(“The file name is c:\\tools\\booklist.txt\\n”); }
答:The file name is c: oolooklist.txt 2、#include
int x=2,n=4;
printf(“%d**%d\\n”,x,n,power(x,n)); }
power(int x,int n) {
if(n==0) return (1);
else return (x*power(x,n-1)); }
运行结果____2**4______________。 3、
#include
{ int x=2,y=3,z=0;
printf(\,x,y,z); try(x,y,z);
printf(\,x,y,z);
}
try(int x,int y,int z) {
printf(\,x,y,z); z=x+y; x=x*x; y=y*y;
printf(\,x,y,z); }
运行结果 : * x=2,y=3,z=0 ** x=2,y=3,z=0 *** x=4,y=9,z=5 ****x=2,y=3,z=0
五、编程题
1. 用递归函数求n! #include
main ( )
{ int n,p; printf(\ scanf(\ p = facto (n);
printf(\}
facto (int n) { int r;
if (n ==0 ) r =1; else r = n*facto(n-1); return(r); }
main ( )
{ int a,b; a=5;b=10;
printf(\ swap(&a,&b);
printf(\}
swap (px,py)
int *px,*py;
2. 用函数交换main函数中的俩个变量a=5,b=10的值 .
{ int temp; temp=*px; *px=*py; *py=temp;
printf(\}
共分享92篇相关文档