2011-2012第一学期《C语言程序设计》试卷A(2011年11月)
更新时间:2023-11-05 12:58:01 阅读量: 综合文库 文档下载
- c语言程序设计期末考试推荐度:
- 相关推荐
一、选择题(1-10每题1分,11-30每题1.5分,共40分) 1. 下列选项中,可以作为用户标识符的是(C)
A) void B) 8_8 C) _a_0 D) a*b
在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。
2. 若有定义:float a=22;int i=0,k=18; 则不符合C语言规定的赋值语句是(C)
A)k=i++; B)i =(i*k)>=(i-k); C)i=a; D)k=!a;
3. 若执行了语句:float x=1008; int a=15; 则表达式(int)(x+y)%7/17的值为(C)
A) 23 B) 1 C) 0 D) 无法确定
4. 若有定义语句:int a=1;double b=3.14;,则表达式?X?+a+b的结果的类型是(C)
A)char B)int C)double D)float
5. 如有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为(B)
A)1.9 B)1 C)2 D)2.4
因为x/y中的/在x、y都是整型时是取整除,就是说取商的整数部分,显然12/8得1余4,所以得数为1;而z被声明的是整型,它只接收整数而不理会小数部分,故尽管0.9+x/y=0.9+1=1.9,但把1.9赋给z后,z只接受了1这个整数部分。
6. 以下是if语句的一种形式:
if(表达式) 语句
其中关于“表达式”的说明正确的是:(D)
A) 必须是逻辑表达式 B) 必须是关系表达式
C) 必须是逻辑表达式或关系表达式 D) 可以是任意合法的表达式 7. 若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给 变量a,5赋给变量b的输入数据是(C)
A)3 5 B)3,5 C)3;5 D)35 “%d;%d” 8. 若有定义语句:int k1=10,k2=20;,执行表达式(B) (k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为
A)0和1 B)0和20 C)10和1 D)10和20
1
k1>k2不成立,k1=0;与运算前面部分为假,程序直接执行下一语句,因此k2=k2>k1没有被运行,k2依然等于20,所以输出k1=0,k2=20.
追问也就是说,在逻辑和运算符中,当第一个(左边)的值为0时,第二个(右边)的运算就不再执行?可以这样理解吗?回答是的。同理逻辑或运算第一个为真是就不执行后面的表达式,直接到下一语句
9. 下列语句中正确的是:(A)
A) char str[10]; str = “Hello”; B) char *str; str = “Hello”; C) char str[10]; str = {“Hello”}; D) char *str; str = {“Hello”};
10. 设有定义 int a[10], *p=a; 以下能够代表数组元素a[4]的是:(B)
A) a+4 B) *(p+4) C) *a+4 D) *p + 4
11. 有以下程序
#include
int a=1,b=0;
if(--a)表示当a自减1后为零,即为假,则不继续执行 b++;
else if(a==0) b+=2; else b+=3;
printf(“%d\\n”,b); return 0; }
程序运行后的输出结果是 (C) A)0 B)1 C)2 D)3
12. 下列条件语句中输出结果与其他语句不同的是A
A)if(a) printf(“%d\\n”,x); else printf(“%d\\n”,y); B)if(a==0) printf(“%d\\n”,y); else printf(“%d\\n”,x); C)if(a!=0) printf(“%d\\n”,x); else printf(“%d\\n”,y); D)if(a==0) printf(“%d\\n”,x); else printf(“%d\\n”,y);
13. 有以下程序:
#include
2
while(a--);
printf(“%d\\n”,a); }
程序运行后的输出结果是 (A) A) -1 B)0 C)1 D)7
a--是先判断a的值是否等于0然后将a的值减去1如while(1--)这个循环次数为1次,而while(--a)与之不同如while(--2)的循环次数为1次
14. 以下不能输出字符A的语句是 B (注:字符A的ASCII码值为
65,字符a的ASCII码值为97) A)printf(“%c\\n”,?a?-32); B)printf(“%d\\n”,?A?); C)printf(“%c\\n”,65); D)printf(“%c\\n”,?B?-1);
15. 有以下程序(注:字符a的ASCII码值为97)
#include
{ char *s={“abc”}; do
{printf(“%d”,*s);++s;} while(*s); }
程序运行后的输出结果是 A)abc B)789 C)7890 D)979898
16. 若有定义语句:double a,*p=&a;以下叙述中错误的是
A)定义语句中的*号是一个地址运算符 B)定义语句中的*号是一个说明符
C)定义语句中的p只能存放double类型变量的地址
D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p
17. 有以下程序:
#include
{ double a=0; int i;
for(i=0; i<30; i+=10) a+=f((double)i); printf(“%5.0f\\n”,a); }
double f(double x) {return x*x+1;}
程序运行后的输出结果是 A)503 B)401 C)500 D)1404
3
18. 若定义语句:int year=2009,*p=&year;,以下不能使变量year中的值增至
2010的语句是
A)*p+=1; B)(*p)++; C)++(*p); D)*p++;
19. 以下定义数组的语句中错误的是
A)int num[]={1,2,3,4,5,6};
B)int num[][3]={{1,2},3,4,5,6};
C)int num[2][4]={{1,2},{3,4},{5,6}}; D)int num[][4]={1,2,3,4,5,6};
20. 有以下程序
#include
{printf(“%d\\n”,p[5]);} main()
{int a[10]={1,2,3,4,5,6,7,8,9,10}; fun(&a[3]); }
程序运行后的输出结果是 A)5 B)6 C)8 D)9
21. 有以下函数
int fun(char *x,char *y) {int n=0;
while((*x==*y)&&*x!=?\\0?){x++;y++;n++;} return n; }
函数的功能是
A)查找x和y所指字符串中是否有?\\0? B)统计x和y所指字符串中最前面连续相同的字符个数 C)将y所指字符串赋给x所指存储空间 D)统计x和y所指字符串中相同的字符个数
22. 数学上的式子 1 A) 1 23. 若有定义语句:char *s1=”OK”;*s2=”ok”;,以下选项中,能够输出“OK” 的语句是 A)if(strcmp(s1,s2)==0) puts(s1); B)if(strcmp(s1,s2)!=0) puts(s2); C)if(strcmp(s1,s2)==1) puts(s1); 4 D)if(strcmp(s1,s2)!=0) puts(s1); 24. 以下程序的主函数中调用了在其前面定义的fun函数 #include void main() {double a[15],k; k=fun(a); } 则以下选项中错误的fun函数首部是 A)double fun(double a[15]) B)double fun(double *a) C)double fun(double a[]) D)double fun(double a) 25. 有以下程序: #include { static int n=0; n+=m; return n; } void main() { int n=0; printf(“%d,”,f(++n)); printf(“%d\\n”,f(n++)); } 程序运行后的输出结果是 A)1,2 B)1,1 C) 2,3 D) 3,3 26. 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是 A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4); 27. 有以下程序 #include void main() { int s; scanf(\ while(s>0) { switch(s) { case1:printf(\ 5 case2:printf(\ case3:printf(\ default:printf(\ } scanf(\ } } 运行时,若输入1 2 3 4 5 0<回车>,则输出结果是 A)6566456 B)66656 C)66666 D)6666656 28. 有以下程序 #include #define S(x) 4*(x)*x+1 void main() { int k=5,j=2; printf(\} 程序运行后的输出结果是 A)197 B)143 C)33 D)28 29. 有如下程序,其中k的初始值为八进制数 #include k++; printf(“%d\\n”, k); } 则程序运行后的输出结果是: A) 12 B) 11 C) 10 D) 9 30. 设有定义:struct {char mark[12];int num1;double num2;} t1,t2;,若变量 均已正确赋初值,则以下语句中错误的是 A)t1=t2; B)t2.num1=t1.num1; C)t2.mark=t1.mark; D)t2.num2=t1.num2; 二、填空题(【1】-【10】每空1分,【11】-【20】每空2分,共30分) 1、以下程序实现两个字符串的连接。不用strcat函数,填空请将程序补充完整 void str_cat(char S1[80],S2[40]) { int i=0,j=0; while ( 【1】) 6 i++; while (S2[j]!=?\\0?) 【2】 【3】 printf(“\\n连接后的字符串为: %s”, S1); } 2、以下程序计算1!+2!+?+10!的值,请填空: void main() { int f=1,i,j,sum=0; for(j=1;j<=10;j++) { for(i=1;【4】; i++) 【5】 【6】 f=1; } printf(\…+10!=%d\} 3、请将以下程序补充完整,实现求二维数组中最大元素值及其行列号。 void main() { int a[5][5], i, j; for (i=0; i<5; i++) { for ( j=0; j<5; j++) { scanf(“%d”, &a[i][j]); } } int sum = a[0][0], row,col; for (i=0; i<5; i++) { for ( j=0; j<5; j++) { if (【7】) { 【8】 【9】 【10】 } 7 } } printf(“a[%d][%d]=%d”, row, col, sum ); } 4、以下程序是从键盘输入字符统计小写字母个数,读入字符‘#’时停止统计,请填空: void main() { int n=0,c; while( (c=getchar())!=【11】 ) { if(【12】) n++; } printf(\} 5、以下程序是找年龄最大的人,输出其姓名和年龄。请将以下程序补充完整: #define N 4 struct man {char name[20]; int age; } person[N]={“li”,18,”wang”,19,”zhang”,22,”sun”,20}; void main() { struct man *q,*p; int i, m=0; p = person;q=person; for (i=0; i if (m< _【13】) { q=p++; 【14】 } print(“【15】,%d”, q->name, q->age); } 6、以下程序实现数组的逆序输出,请填空: #define N 5 8 void main() { int a[N]={9,6,8,4,1},i, temp; printf(“\\n original array: \\n”); for (i=0;i for (i=0; 【17】; i++ ) { temp = a[i]; 【18】 a[N-i-1]=temp; } printf(“sorted array:\\n”); for (i=0; i 7 从键盘读取一个字符串,统计出现某特定字符个数. 请完善该程序: void main() { int i=0,num=0; char str[20],ch; ch=getchar(); 【19】 while (str[i]!=?\\0? ) { if(【20】) num++; i++; } printf(“the %c num is %d\\n”,ch,num); } 三、读程序,写出运行结果(每小题3分,共15分) 1. void func1(int i); void func2(int i); char st[]=\void func1(int i) { printf(\ if(i<3) {i+=2;func2(i);} 9 } void func2(int i) { printf(\ if(i<3){i+=2;func1(i);} } void main() { int i=0; func1(i); printf(\ 2. void main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; }while(i<7); printf(\} 3. void f(int x,int y) { int t; if(x void main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf(\} 4. void fun(int *a,int i,int j) { int t; if(i 10
正在阅读:
2011-2012第一学期《C语言程序设计》试卷A(2011年11月)11-05
河南省淅川县大石桥乡一中2017-2018学年八年级上期末模拟数学试05-17
2019生物二轮复习专题限时集训6 遗传的分子基础 Word版含解析02-26
文秘个人述职报告 - 图文02-01
化学类 SCI期刊导航01-07
六一儿童节致辞稿4篇_六一儿童节04-03
整式的概念知识点总结及习题06-07
如何解决贫富差距过大导致的心理变态06-07
六年级数学下册第4单元比例综合与实践自行车里的数学教学案人教版.doc05-14
中心小学校长管理论文06-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 2011
- 程序设计
- 试卷
- 学期
- 语言
- 2012
- 夏季防高温应急预案
- 3自动化专业培养方案新方案091126终稿1
- 焊接烟尘净化技术
- 小学语文教学中爱心教育研究 工作总结
- EPC总承包项目超概算造成的影响原因分析及控制措施
- 现场签证及变更流程要求(试行)方案(新) -
- 新外研版八年级下册英语Module 7 Summer in Los Angeles重点知识
- 教室座位选择问题(数学建模)
- 动物生理学 复习资料
- 吉安电信2015年营维合一项目落地方案0122
- 其他题目
- 青岛版三年级下册科学第三单元试题
- 亲爱的汉修先生复习题
- 管家婆软件工贸销售手册
- 锅炉原理复习精髓
- 课程十一-作业
- 搭纸桥1
- 调研日志2
- 让聋生在与生活的对话中学习汉语拼音
- 2015-2016春季宜昌市西陵区数学八年级下期末调研考试试题及答案