2013高级语言程序设计期中考试答案
更新时间:2023-06-02 03:16:01 阅读量: 实用文档 文档下载
所在年级、班级 注意
四
、
试卷
印刷
不清
楚。
可举
手
向监
考教
师询
问。三、考生在答题前应先将姓名、学号、年级和班
级填
写
在指
定的
方框
内。二、姓名、准考证号不许涂改,否则试卷无效。一、密封 线内不准答题。 #include<stdio.h>
int main( )
{ int x=1,y=2,z=3;
printf(“x+y+z=%d”,x+y+z);
return 0;}
A、1+2+3=6 B、6 C、x+y+z=6 D、x+y+z=123
6. 以下选项中不是C语句的是(D )。
A、{i=1; printf(“%d\n”,i);} B、max=m>n?m:n;
C、 ; D、a=9,c=5
7.若变量已正确定义并赋值,下面符合C语言语法的表达式是( B)。
A、a%=3.5 B、a=7+b+c,a++ C、int(12.5)/4 D、a=a+7=c+b
8. 若有下列定义:
char a; int b;
float c; double d;
则表达式a*b+d-c的值的类型为( D)。
A、float B、int C、char D、double
9.下列程序输出结果是( A )(小数点后只写一位)。
#include<stdio.h>
int main( )
{ double d; float f; long int l; int i;
i=f=l=d=20/3;
printf(“%d %ld %f %f”,i,l,f,d);
return 0;}
A、 6 6 6.0 6.0 B、6 6 6.7 6.7
C、 6 6 6.0 6.7 D、6 6 6.7 6.0
10. 下面有关算法的特性错误的是( C )。
A、 有穷性 B、有零个或多个输入
C、 不确定性 D、有一个或多个输出
二、填空题(每题5分,共30分)
1.分析下面的C语言程序: void main()
{
char ch='a';
int x=10,y=5;
switch (ch+1)
{ case 'a':
printf("x+y=%d",x+y);
break;
case 'b':
printf("x-y=%d",x-y);
break;
default:
printf("nothing!");break;
}
}
程序执行后的输出结果是__x-y=5________。(5分)
2.求一元二次方程ax2+bx+c=0的解。
#include <stdio.h>
(1分)
int main()
{
double a,b,c,disc,x1,x2,realpart,imagpart;
scanf("%lf,%lf,%lf", &a,&b,&c);
disc=b*b-4*a*c;
if( ) (2分)
printf("has two equal roots:%8.4f\n",-b/(2*a));
else
if( ) (2分)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart= sqrt(-disc)/(2*a) ;
printf(" has complex roots:\n");
printf("%8.4f+%8.4fi\n",realpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}
return 0;
}
3.下面是求一个3*3矩阵对角线元素的和,请在空白处填上适当的内容.
void main()
{
int a[3][3]={{1,2,3},{4,5,6},{6,7,8}}, sum=0;
int i,j;
for(i=0;;i++) (1分)
for(j=0;j<3;j++)
(2分)
; (2分)
printf("sum=%d",sum);
}
4. 下面程序是统计1~100之间能被3整除的所有整数的数量,并输出。
请在空白处填入适当的内容。(每空2.5分)
#include <stdio.h>
void main()
{
int i,n=0;
for(i=1;i<=100;i++)
{
(1分)
(2分)
printf("%d ",i);
(2分)
}
printf("1-100之间能被3整除的整数有%d个\n",n);
}
5. 使用冒泡法对10个整数按照从小到大排序。请在下面程序中空格处填
入适当的内容。
#include "stdio.h"
void main()
{
int i,j,temp,a[10];
for (i=0;i<10;i++)
scanf("%d",); (1分)
for(j=0;j<9;j++)
for(i=0;i< ;i++) (2分)
) (2分)
{ temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
6. 下面程序实现并调用了对字符串反转的函数,请在空格处填写适当的
语句
#include <stdio.h>
#include <string.h>
main()
{
char str[100];
printf("input string:");
scanf("%s", str);
char t;
int i,j;
;i++,j--) (1分)
{ t=str[i]; ; (2分)
str[j-1]=t;
}
(2分)
return 0;
}
三、改错题。在下面给出的程序中,每小题有2处错误(可以是语法错误或
者逻辑错误),请找出其中的错误,并改正。(每题5分,共30分,每找对1
个错误,加1分,每修改正确1个错误,再加1.5分。)
1.编写函数fun计算下列分段函数的值:
x*x+x x<0且x≠-3
x*x+5x 0≤x<10
x*x+x-1 其它
#include <stdio.h>
int main()
{
float y;
float x;:
printf("input x=");
scanf("%f", &x);
if (x<0 && x!=-3.0)
y=x*x+x;
改为:else if(x>=0 && x<10.0)
y=x*x+5*x;
else
y=x*x+x-1;
printf("x=%f,y=%f\n",x,y);
return 0;
}
答案:
1) if (x<0 ||x!=-3.0) ----改为:if (x<0 && x!=-3.0)
2)else if(0<=x<10.0) ---- 改为:else if(x>=0 && x<10.0)
2.下列程序实现从键盘输入一个大写字母,要求用小写字母输出。找出程序
中错误的地方并改正。
#include <stdio.h>
int main ( )
{ char c1,c2;
改为:c1=getchar( );
c2=c1+32;
%d 改为 %c
return 0;
}
答案:
1) c1=getchar(c1)---- c1=getchar( )
2) printf(“输出的小写字母为n”,c2);-----%d 改为 %c
3.利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。
该算法的基本思想是:假设有两个整数m和n,通过连续运用求余运算,
直到余数为0为止,最后非0的余数就是最大公约数。
#include <stdio.h>
main()
{
int a, b, r, x;
printf("Input a,b:");
改为:scanf("%d,%d" ,& a, &b);
do{
改为: r = a % b;
a = b;
b = r;
}while (r != 0);
x=a;
printf("最大公约数 = %d\n", x);
}
答案:
1)scanf("%d,%d" , a, b);----- scanf("%d,%d" ,& a, &b);
2)r = a / b;----- r = a % b;
4.有一个2×3的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
#include <stdio.h>
void main( )
{
int i, j, row=0, colum=0, max;
int a[][3]={{8,1,6},{4,9,7}};
改为:max=a[0][0]
for (i=0;i<2;i++)
for (j=0;j<3;j++)
if(max<a[i][j])
改为:{max=a[i][j]; row=i; colum=j;}
printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
}
答案:
1) max=0------max=a[0][0]
2) max=a[i][j]; row=i; colum=j;------ {max=a[i][j]; row=i; colum=j;}
5. 输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。
#include <stdio.h>
#include <string.h>
改为: define ARR_SIZE 80
main()
{
char str[ARR_SIZE];
int len, i;
int letter,digit,space,other;
letter=digit=space=other=0;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
for (i=0; i<len; i++)
{
改为: if ( a =<str[i]&& str[i]<= z || A =<str[i]&&str[i]<= Z )
{
++letter;
}
else if ('0'=<str[i]&& str[i]<='9')
{
++digit;
}
else if (str[i]= =' ' )
{
++space;
}
else
++other;
}
printf("英文字符数:%d\n", letter);
printf("数字字符数:%d\n", digit);
printf("空格数:%d\n", space);
printf("其他字符数:%d\n", other);
}
答案:
1)define ARR_SIZE = 80 改为 define ARR_SIZE 80
2)if (a=<str[i]<=z && A=<str[i]<=Z)
改为if ( a =<str[i]&& str[i]<= z || A =<str[i]&&str[i]<= Z )
6、任意输入一个字符串,在星期表中查找该字符串,若找到,则打印 “已找到”,否则打印 “没找到”。
#include<string.h>
main()
{
int i;
int findFlag;
char x[10];
char weekDay[7][10]= {
"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; findFlag=0;
printf("请输入一个字符串:");
scanf("%s",x);
for (i=0; i < 7 && !findFlag; i++)
{
改为: if (strcmp(x ,weekDay[i])= =0) {
findFlag = 1;
}
}
改为: if (findFlag= =1)
{
printf("找到\n");
}
else
{
printf("没找到!\n");
}
}
答案:
1)if (x = weekDay[i]) ------- if (strcmp(x ,weekDay[i])= =0)
2)if (findFlag=1)----------- if (findFlag= =1)
四、编程题(共30分)请用NS画出每个程序的流程图(每个流程图占4分),并编写相应的程序(每个程序占6分),。
1.闰年问题。从键盘上输入某年份year(4位十进制数),判断其是否闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。(10分)
int main()
{
int year,leap;
scanf("%d",&year);
if (year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if (leap)
printf("%d is ",year);
else
printf("%d is not ",year);
printf("a leap year.\n");
return 0;
}
2. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩
(10分)
#include <stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1;
day--;
}
printf("total=%d\n",x1);
return 0;
}
#include <stdio.h>
int main()
{ char s1[80],s2[40];
int i=0,j=0;
printf("input string1:");
scanf("%s",s1);
printf("input string2:");
scanf("%s",s2);
while (s1[i]!='\0')
{
i++;
//printf("i=%d, s1[i]=%c\n",i-1,s1[i-1]);
}
while(s2[j]!='\0')
{
s1[i++]=s2[j++];
//printf("i=%d, s1[i]=%c\n",i-1,s1[i-1]);
}
s1[i]='\0';
printf("\nThe new string is:%s\n",s1);
return 0;
}
正在阅读:
2013高级语言程序设计期中考试答案06-02
JAVA相关课程系列笔记之八JAVASCRIPT学习笔记(建议用WPS打开)05-15
浙江重点项目-金丽温省级天然气管道金衢段配套管道工程项目可行性研究报告09-02
天龙八部录入版文本选择题01-05
曲靖市摩托车行名录2018版166家03-01
广西北海市合浦县教育局教研室2011-2012学年高二下学期期中考试03-11
过年杀鸡作文600字07-02
实用的描写黄山的作文4篇04-02
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 期中
- 程序设计
- 答案
- 高级
- 语言
- 考试
- 2013
- 中考语文成语改错200题
- 内部资料“完美项目总结与制作经验交流”
- 摊铺机使用不当对路面平整度的影响
- 低碳生活低碳汽车
- 02 第二讲 模拟集成电路设计自动化的研究工作
- 易经故事之一:智慧人生64个感悟
- 《船舶安全检查缺陷处理指导原则(船旗国监督检查部分)》
- 安全管理人员安全理论知识培训教案
- 苏教版小学科学五年级下册教材分析
- 化学专业净化站部分培训试题及答案选择题
- 法治促进西部地区社会管理创新_基于西部少数民族地区社会管理视角_危巍
- 中国互联网+dc电子负载器行业商业运行模式及投资建议报告2016-2022年
- 6.4 确定一次函数表达式练习题(用)
- 建筑工程一级注册建造师继续教育选修课考试单选题题库
- 1高中生物的分类
- 直流电机的详细介绍
- 甘肃省武威市第十七中学八年级物理下册11.2功率教案人教版
- 绿色食品生产怎样施肥
- 设计文件归档、交接管理办法
- 烹饪英语 菜品特色介绍