《C语言模拟试卷.doc》由会员分享,可在线阅读,更多相关《C语言模拟试卷.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、长安大学继续教育学院2010-2011学年第 二 学期 试卷(A)站 名新疆年级专业(层次)课程名称C语言程序设计学 生姓 名学 号成 绩一、填空题(每小题2分,共 10 分)1. 计算机软件分为系统软件与应用软件,UNIX属于_.2. 以下程序运行后的输出结果是_ 。main() int p=30;printf(%dn,(p/30 ? p/10 : p%3);3.C语言中唯一的一个三目运算符的表达形式为_。4.C语言的所有基本语句按照结构可分为_、_、_、_。5.C语言提供的三个无条件转向语句,分别是_、_、_。二、选择题(每小题 2 分,共 70 分)注意:请务必把该题的答案按照顺序写在下
2、面的表中!12345678910111213141516171819202122232425262728293031323334351. C语言规定,程序中各函数之间_。A)既允许直接递归调用也允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用不允许间接递归调用D)不允许直接递归调用允许间接递归调用2. 在使用程序流程图来表示算法时,菱形用来表示_。A)输入与输出B)子程序C)判断分支D)循环边界3. C语言中下列叙述正确的是_。A)不能使用dowhile语句构成的循环B)dowhile语句构成的循环,必须用break语句才能退出C)dowhile语句构成的循环,当
3、while语句中的表达式值为非零时结束循环D)dowhile语句构成的循环,当while语句中的表达式值为零时结束循环4. 以下选项中属于C语言的数据类型是_。A)复数型B)逻辑型C)双精度型D)集合型5. 在C语言中,不正确的int类型的常数是_。A)32768B)0C)037 D)0xAF6. 以下程序输出的结果是_。main()int a=65535;printf(du,a,a);A)-1 -1B)65535 65535 C)-1 65535D)65535 -l7. 下列描述中不正确的是_。A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出c)可以对整型数组进行整体输入
4、、输出D)不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值8. 以下程序的输出结果是_。main()int i,x33=9,8,7,6,5,4,3,2,1,*p=&x11;for(I=0;i=b=0)&(aOb=0&b=O)&(a0&b0)&(a+b014. 若己定义:int a9,*p=a;并在以后的语句中未改变p的值,不能表示al地址的表达式是_。A)p+lB)a+lC)a+D)+p15. 以下程序的输出结果是_。main() int a=-1,b=1,k;if(+a0)&!(b-=0)printf(ddn,a,b);elseprintf(ddn,b,a);A)-1lB)0lC)1
5、0 D)0016. 以下选项中可作为C语言合法整数的是_A)10110B B)0386 C)0Xffa D)x2a217. 以下不能定义为用户标识符的是_A)scanf B)Void C)_3com_ D)int18. 有以下程序main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f %3.1fn,a,c,f,x);程序运行后的输出结果是_A)1 65 1 6.5 B)1 65 1.5 6.5 C)1 65 1.0 6.5 D)2 65 1.5 6.519. 以下选项中非法的表达式是_
6、A)0=xa)|(m=ab);printf(%d,%dn,k,m);程序运行后的输出结果是_A)0,0 B)0,1 C)1,0 D)1,121. 设有如下程序段:int x=2002, y=2003;printf(%dn,(x,y);则以下叙述中正确的是_A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为200322. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*1
7、00+0.5)/100.0; D)x=(x/100+0.5)*100.0;23. 有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是_A) if (ca) x=1; B) if (a3) x=3;else if (ba) x=2; else if (a2) x=2;else x=3; else x=1;C) if (a3) x=3; D) if (ab) x=b;if (a2) x=2; if (bc) x=c;if (a1) x=1; if (ca) x=a;24. 有以下程序main() int s=0,a=1,n;scanf(%d,&n);do
8、 s+=1; a=a-2; while(a!=n);printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是_A)-1 B)-3 C)-5 D)025. 有以下程序main() int k=4,n=0;for( ; n1;n-)s=s+1/n;printf(%6.4fn,s);程序运行后输出结果错误,导致错误结果的程序行是 _A)s=1.0; B)for(n=10;n1;n-) C)s=s+1/n; D)printf(%6.4fn,s);27. 已定义ch为字符型变量,以下赋值语句中错误的是_A)ch=; B)ch=62+3; C)ch=NULL; D)ch=xaa;28
9、. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参29. 已定义c为字符型变量,则下列语句中正确的是_A)c=97; B)c=97; C)c=97; D)c=a;30. 以下不能正确定义二维数组的选项是_A)int a22=1,2; B)int a2=1,2,3,4;C)int a22=1,2,3; D)int a2=1,2,3,4;31. 以下能正确定义一维数组的选项是A)int num; B) #define N 100 int numN;C
10、)int num0.100; D) int N=100;int numN;32. 下列选项中正确的语句组是_A)char s8; s=Beijing; B)char *s; s=Beijing;C)char s8; s=Beijing; D)char *s; s=Beijing;33. 有以下程序main() int x=3, y=2, z=1;printf(%dn,x/y&z);程序运行后的输出结果是_A)3 B)2 C)1 D)034. 下列关于C语言数据文件的叙述中正确的是_A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C
11、)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件35. 有以下程序main() int a33,*p,i;p=&a00;for(i=0;i9;i+) pi=i+1;printf(%d n,a12);程序运行后的输出结果是_A)3 B)6 C)9 D)2三、读程序写结果题(每小题10分,共分20 分)注意:请把运行结果写在下面的表中!121. 请写出下面程序的运行结果。#include “stdio.h”main( )int a, s, n, count;a=2; s=0; n=1; count=1;while(
12、count =5)n=n*a;s=s+n;count+;printf(“s=%d”,s);运行结果:2. 请写出下面的C程序段输出结果。int x1=3, x2=4;main( )int x3=1, x4=2; sub(x3, x4); sub(x1, x2); printf(“x1=%d, x2=%d, x3=%d, x4=%d”, x1, x2, x3, x4);sub(int x, int y)int x1; x1=x; x=y; y=x1;运行结果:长安大学继续教育学院2010-2011学年第 二 学期 试卷(B)站 名新疆年级专业(层次)课程名称C语言程序设计学 生姓 名学 号成 绩
13、一、单项选择题(每小题2分,共 30 分)1、下面标识符中,均为不合法的用户标识符为 ( )A) AB、x_0、for B) float、1a0、_YC) x-y、goto、123 D) _123、tmp、CHAR2、C语言中,int型数据在内存中的存储形式是 ( )A) ASCII码 B) 原码C) 反码 D) 补码3、执行printf(“%x”, 100);后的输出结果为 ( )A) 100 B) 0x100C) 0x64 D) 644、能表示条件100x100的C语言表达式是 ( )A) 100=x=100, x=100 & x=1005、C程序中,注释部分的位置 ( )A) 必须在一行
14、的开始 B) 必须在语句之后 C) 必须在一行的最后 D) 以上三种都可以6、对数组的描述正确的是 ( )A) 数组一旦定义其大小是固定的,但数组元素的类型可以不同B) 数组一旦定义其大小是固定的,但数组元素的类型必须相同C) 数组一旦定义其大小是可变的,但数组元素的类型可以不同D) 数组一旦定义其大小是可变的,但数组元素的类型必须相同7、有输入语句:scanf(a= %d,b= %d,c=%d,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 ( )A)132 (回车) B)1,3,2 (回车)C)a=1 b=3 c=2 (回车) D)a=1,b =3,
15、c =2 (回车)8、已知ch是字符型变量,下面正确的赋值语句是 ( )A) ch= 123; B) ch= xff;C) ch= 08; D) ch=;9、以下程序的输出结果是: ( )main()int x=2, y=1, z=2;if (xy)if(y0) z= 0;else z+ =1;printf(%dn,z);A)3 B )2 C)1 D) 010、下面程序段的运行结果是: ( )a=1; b= 2; c=3;while(abc) t= a; a= b; b=t; c- -;printf(%d,%d,%d,a,b,c);A)1,2,0 B)2,1,0C)1,2,1 D)2,1,11
16、1、下述对C语言字符数组的描述中错误的是 ( )A)字符数组可以存放字符串B)字符数组的字符串可以整体输入或输出C)可以在赋值语句中通过赋值运算符“”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较12、以下正确的函数定义形式(即定义函数时函数首部的形式)是( )A) double fun(int x, int y)B) double fun(int x; int y)C) double fun(int x, y)D) double fun(int x, int y);13、C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为( )类型。A)void B)double
17、 C)int D)char14、下面程序段输出结果是 ( )char str =adcd, *ps=str;printf(%dn, *(ps+4);A)100 B) 0 C)字符d的地址 D)不确定15、下面四个程序中,被调用函数的实参、形参使用正确的是( )A) B) C) D)main() main() main() main() int a10,*p; int a10,*p; int a10,*p; int a10,*p; p=a; p=a; p=a; p=a; f(&p); f(p); f(p); f(&p); f(int *x) f(int *x) f(int x) f(int x
18、) . . . . 二、判断题(对的打“”,错的打“”,每小题 1 分,共 10 分)1、C程序执行的入口是main函数,所以main函数必须放在程序的开头。2、注释内容太多会影响程序的执行效率。3、若i, sum都为整型,则语句:for(i=1, sum=0;i=100;i+) sum=sum+i;执行完毕之后i为100。4、若定义int a510,则数组中最后一个有效元素是a510。5、若运行时输入:100(回车)时,下面的程序运行结果是:nomain()int a;scanf(“%d”,&a);printf(“%s”, (a%2)!=0? “no” : “yes”);6、字符串“that
19、”小于字符串“The”。7、若调用一个函数,且此函数中没有return语句,则没有返回值。8、若i为整型变量,则以下循环体执行次数是0次。for(i=2; i= =0; )printf(“%d”, i-);9、对于“do 循环体 while (循环条件);”,这个循环结构有可能一次循环体的内容都无法执行。10、当定义了一个结构体变量时,系统分配给它的内存是各成员所需内存量的总和。 三、程序填空题(每小题 2分,共分20 分)1、下面程序的功能为:从字符串Computer and C中删去所有空格,请填空。#include main()char str180=Computer and C, st
20、r280;int i,j=0;for(i=0; i=area2)printf(“Area=%fn”, (10) );elseprintf(“Area=%fn”, area2-area1);四、读程序写结果题(每小题 4分,共20分) 1、有下列程序运行时,从键盘输入:ah2MA_Aha(回车)(注:_代表空格),请写出该程序的运行结果。提示:小写字母的ASCII码减去32为对应大写字母的ASCII码,反之,大写字母的ASCII码加上32为对应小写字母的ASCII码。#include “stdio.h”main( )char s80, c=a;int i=0;scanf(“%s”,s);whil
21、e(si != 0)if(si= =c)si = si-32;else if(si= =c-32)si = si+32;i+;puts(s);运行结果:2、请写出下面程序的运行结果。#include “stdio.h”main( )int a, s, n, count;a=2; s=0; n=1; count=1;while(count =1 & x=4)an=x;n+;scanf(“%d”, &x);f(a,c,n);/*调用函数f*/printf(“Output the result:n”);for(i=1;i=4;i+)printf(“%d:%dn”, i, ci);printf(“n”);f(int a, int c, int n)1)请补充f函数,将f函数实现完整。f函数的功能:对a数组的前n个元素进行统计,为1的个数存放在c1中,为4的个数存放在c4中,c0弃之不用。(6分)2)请用流程图(或N-S流程图)描述出f函数的实现流程。(4分)
限制150内