高级语言程序设计A:期练末习3及答案

上传人:xt****7 文档编号:101243408 上传时间:2022-06-04 格式:DOC 页数:6 大小:54.50KB
收藏 版权申诉 举报 下载
高级语言程序设计A:期练末习3及答案_第1页
第1页 / 共6页
高级语言程序设计A:期练末习3及答案_第2页
第2页 / 共6页
高级语言程序设计A:期练末习3及答案_第3页
第3页 / 共6页
资源描述:

《高级语言程序设计A:期练末习3及答案》由会员分享,可在线阅读,更多相关《高级语言程序设计A:期练末习3及答案(6页珍藏版)》请在装配图网上搜索。

1、一、单项选择题: 1对于一个正常运行和正常退出的C程序,以下叙述正确的是 。A)程序从main函数第一条可执行语句开始执行,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在最后一个函数中结束D)从程序的第一个函数开始,在程序的最后一个函数中结束2以下不能对二维数组a进行正确初始化的语句是 。A)int a 23=0;B)int a 3=1,2,0;C)int a 23=1,2,3,4,5,6;D)int a 3=1,2,3,4,5,6;3有以下程序片断float fun(int x, int y)return (x+y);m

2、ain() int a=2,b=5,c=8; printf(%3.0fn, fun(int)fun(a+c,b), a-c);程序运行后的输出结果是 。A)编译出错 B)9 C)21D)9.04.下列程序执行后的输出结果是 。#include main() int a33, *p, i;p = &a00;for (i=1; i9; i+)pi = i + 1;printf(%dn,a12);A)3B)6C)9D)随机数5有如下程序片段:#include main( )int a = 5, b = 4, x, y;x = 2 * a+;printf(a=%d, x=%dn, a, x);y =

3、-b * 2;printf(b=%d, y=%dn, b, y);则正确的执行结果是 。A) a=6, x=10b=3, y=8B) a=6, x=10b=3, y=6C) a=6, x=12b=3, y=6D) 以上均不对6对于以下程序片段,描述正确的是 。int x = -1;do x = x * x;while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误7. 二维数组a有m行n列,则在aij之前的元素个数为( )。A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+1二、写出下列程序的运行结果。(15分,每题3分)1#include mai

4、n()int n = 0;char c;while(c=getchar( ) != n)if (c=0 & c=9) n = n * 10 + c - 0;printf(value=%dn, n); 程序运行时输入为:2008 时,则程序运行结果是:value=20082#includemain()int a = 1, b = 0; switch (a) case 1:switch (b) case 0: a+; b+; printf(a=%d, b=%dn, a, b); break;case 1: a+; b+; printf(a=%d, b=%dn, a, b); break; case

5、 2: a+; b+; printf(a=%d, b=%dn, a, b); break;运行结果是:a=2,b=1 a=3,b=23#include#includemain() printf(%dn, strlen(IBMn0121);程序运行结果是:94#includemain() int i, a10; int *p; p = a; for (i=0; i10; i+) scanf(%d, p+i); for (p=a; pa+10; p+) printf(%dt, *p); printf(n); for (p=a; pa+10; p+) if (*p % 2) printf(%dt,

6、*p); 程序运行时输入为:12345678910 时,则程序运行结果为:1 2 3 4 5 6 7 8 9 10 1 3 5 7 95#include int mod(int x, int y) return (x % y);main() int m, n, r; scanf(%d %d, &m, &n); r = mod(m, n); while (r != 0) m = n; n = r; r = mod(m, n); printf(The Result is :%dn, n);程序运行时输入:8118 ,则运行结果是:The Result is:9三、阅读程序,在标有下划线的空白处填入

7、适当的表达式或语句,使程序完整并符合题目要求。(16分,每空2分)1.以下程序将输入的十进制数以十六进制的形式输出。#include main() char b17= 0123456789ABCDEF; int c64,d, i=0, base = 16; long number; printf(请输入一个十进制数n); scanf(%ld, &number ); do ci = number%base ; number = number / base; i+ ; while (number != 0); printf(对应的十六进制数为: n); for(-i; i=0 ; -i) d =

8、ci; printf(%c, bd ); printf(n);2 用户从键盘任意输入一个数字表示月份值n,程序显示该月份对应的英文表示,若n不在112之间,则输出“Illegal month”。#include main()int n;static char monthName20=Illegal month, January,February,March, April, May, June,July, August,September, October, November, December;printf(Input month number:);scanf(%d, &n);if ( n=1

9、&n=12 )printf(month %d is %sn, n, monthNamen ); else printf(%sn, monthName0 );四、在下面给出的3个程序中,共有10处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。(30分,每找对1个错误,加1.5分,每修改正确1个错误,再加1.5分。只要找对10个即可,多找不加分。)1下面程序实现折半查找算法,当找到输入元素后显示其在数组中的下标。 #include main()int up=10, low=1, mid, found, find; found=0 int a10=1, 5, 6, 9, 11, 17,

10、 25, 34, 38, 41; scanf(%d, find); &find printf(n);while (up=low | !found) found没有初始值,up=low & !foundmid=(up+low)/2; if( amid = find ) amid = = find found=1; break; else if(amidfind) up=mid+1; up=mid-1;else low=mid+1; if(found) printf(found number is %dth, mid);else printf(no found); 2计算十个数据的平均值。#inc

11、lude void main(void)int i, sum; sum=0 ;float avg;int sc10, *p = sc;for (i=0, i10, i+) for (i=0; i10 ; i+) scanf(%d, p);sum += *p; p+; sum+=sci; 或者换成 sum += *p;与p+;avg = sum / 10; sum / 10.0printf(avg=%fn, avg);3编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。(用字符数组实现)#include #include void Inverse(char rstr)v

12、oid Inverse(char rstr);main()char str80;printf(Input a string:n);gets(str);Inverse(str);printf(The inversed string is:n);puts(str);void Inverse(char rstr)int i,n;char temp;for(i=0, n=(strlen(rstr); in; i+, n-) n=(strlen(rstr)-1;in;temp = rstri;rstri = rstrn; rstrn-1;rstrn = temp; rstrn-1;五、编程(25分)1.

13、 从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则由1234分离出其千位1、百位2、十位3、个位4,然后计算1+2+3+4=10,并输出10。(7分)#include stdio.hmain() int x,a,b,c,d; printf(please input a number(1000=x=9999):); scanf(%d,&x); d=x%10; c=(x/10)%10; b=(x/100)%10; a=x/1000; printf(n %d,a+b+c+d); 2. 输入20个学生的成绩,求出其中大于平均成绩学生的人数,并

14、对20名学生成绩按从高到低进行排序。(10分)main()int score20,sum=0,average,count=0; int i,j,t; printf(ninput 20 numbers:n); for (i=0;i20;i+) scanf(%d,&scorei); sum+=scorei; average=sum/20; for (i=0;iaverage) count+; printf(%dn,count); for (j=0;j=18;j+) for (i=0;i=18-j;i+) if (scoreiscorei+1) t=scorei; scorei=scorei+1; scorei+1=t; printf(the sorted numbers:n); for (i=0;i20;i+) printf(%5d,scorei);3. 利用公式=前100项之积计算并打印p值。(8分)#include stdio.hmain() float pi=1.0; long i; for (i=2;i=200/2;i=i+2) pi=pi*i/(i-1)*i/(i+1); printf(%f,pi*2);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!