程序设计基础试题和答案解析二_第1页
程序设计基础试题和答案解析二_第2页
程序设计基础试题和答案解析二_第3页
程序设计基础试题和答案解析二_第4页
程序设计基础试题和答案解析二_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 WORD格式可编辑程序设计基础考试试卷二1. 1966年,Bohra和Jacopini提出的三种基本程序设计结构是:_A if、while和for; B. switch、do-while和for;C. while、do-while和for;D.顺序结构、分支结构和循环结构。2. 算法的特征不包括:_。A 有穷性 B.可行性 C.确定性 D.有1个或者多个输入。3. C语言源程序的基本组成单位是_。A 函数 B. 语句 C. 声明和语句 D. 文件4. 下列标识符中,只有_是合法的。A if B. 3ab C. Int D. A-45. 下列常量中,只有_是合法的。A 3e-0.3 B. ab

2、c C. 02a1 D. 3776. 下列说法中正确的是:_。A C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。B 宏替换比函数调用的执行速度慢。C 实质上,C语言中的指针就是一个变量的地址。D C语言中的任何函数都可以由程序员命名。7. C语言中,运算对象必须是整型的运算符是_。A / B. % C. + D. -8. 以下叙述中错误的是_。A C语句必须以分号结束B 复合语句在语法上被看作一条语句C 空语句出现在任何位置都不会影响程序运行D 赋值表达式末尾加分号就构成赋值语句9. 以下叙述中正确的是_。A调用printf函数时,必须要有输出项B使用putchar函数时,必

3、须在之前包含头文件stdio.hC在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10. 以下关于函数的叙述中正确的是_。A每个函数都可以被其它函数调用(包括main函数)B每个函数都可以被单独编译C每个函数都可以单独运行D在一个函数内部可以定义另一个函数11. 有以下程序段typedef struct NODE int num; struct NODE *next; OLD;以下叙述中正确的是_。A以上的说明形式非法BNODE是一个结构体类型COLD是一个结构体类型DOLD是一个结构体变量12. 以下叙述中

4、错误的是_。AC语言中对二进制文件的访问速度比文本文件快BC语言中,随机文件以二进制代码形式存储数据C语句 FILE fp; 定义了一个名为fp的文件指针DC语言中的文本文件以ASCII码形式存储数据13. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是_。Ak%2 B. k%2=1 C. (k%2)!=0 D!k%2=114. 以下不能正确计算代数式值的C语言表达式是_。A1/3*sin(1/2)*sin(1/2) Bsin(0.5)*sin(0.5)/3Cpow(sin(0.5),2)/3 D1/3.0*pow(sin(1.0/2),2)15.

5、以下能正确定义且赋初值的语句是_。Aint n1=n2=10; Bchar c=32;Cfloat f=f+1.1; Ddouble x=12.3E2.5;16. 以下程序的功能是:当a<b<c时,以八进制形式输出a、b、c的值。#include <stdio.h>void main() /* Beginning */ int a,b,c; scanf(“%d%d%d”,&a,&b,&c); if (a<b<c) printf(“%o%o%o”,a,b,c);程序不能得到正确结果的的原因是_。A注释语句书写位置错误Ba、b、c不能以八

6、进制进行输出C没有按照八进制进行输入Dif语句的条件表达式错误17. 设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是_。Ak=k>=k B-k+ Ck%int(f) Dk>=f>=m18. 设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是_。A(!a=1)&&(!b=0); B(a<b)&& !c|1;Ca && b; Da|(b+b)&&(c-a)19. 有以下程序段int k=0,a=1,b=2,c=3; k=a<b ? b:a; k=

7、k>c ? c:k;执行该程序段后,k的值是_。A3 B2 C1D020. 设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句if (a<b) if(c=d) y=0; else y=1;该语句所表示的含义是_。A B CD 一、 阅读程序,写出下列程序的运行结果。(20分)1、 已知字母A的ASCII码为65。#include <stdio.h>void main()char a, b;a='A'+'5'-'3' b=a+'6'-'2' ;printf("%d %cn&

8、quot;, a, b);2、#include <stdio.h>void f(int v, int w) int t;t=v;v=w;w=t;void main()int x=1,y=3,z=2;if (x>y) f(x,y);else if (y>z)f(y,z);else f(x,z);printf(“%d,%d,%d”,x,y,z);3、#include <stdio.h>void main() int a44=3,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,12,-33,0; int i,j,s=0; for(i=0

9、;i<4;i+) for(j=0;j<4;j+) if(aij<0) continue; if(aij= =0) break; s+=aij printf("%dn",s);4、#include <stdio.h>void main() int a=100,b=10; int *p1=&a, *p2=&b; *p1=b; *p2=a; printf(“%d, %d,”,a,b); printf(“%d, %dn”,*p1,*p2);二、 程序改错:找出下列程序存在的错误,并进行改正。(20分)1、以下程序的功能是:给r输入数据后

10、计算半径为r的圆面积s。#include <stdio.h>#define PI 3.1415926void main() int r; float s; scanf("%d",r); s=PI*r2;printf("s=%fn",s);2、 以下程序用于计算一个一维数组各元素平方根的和。#include <stdio.h>#include <math.h>void main()int a10,i;float sum;for (i=0;i<=10;i+) scanf(“%d”,&ai); i=0;whil

11、e (i<=9)sum+=sqrt(ai);i+;3、 以下程序用于通过指针对数组进行输入和输出#include <stdio.h>void main()int a10;int *p=a;int i;for (i=0;i<10;i+)scanf(“%d”,p+);for (i=0;i<10;i+)printf(“%5d”,p+);4、 以下程序通过判断输入的成绩判断其级别:其中90分以上为A,80分以上为B,70分以上为C,60分以上为D,其他为E。#include <stdio.h>void main()int score,temp;temp=sco

12、re/10;switch (temp)case 10,9: printf(“A”);case 8: printf(“B”);case 7:printf(“C”);case 6:printf(“D”);default:printf(“E”);三、 程序填空题:阅读程序,填充空白使之能完成预定功能。(10分)1、以下程序的功能是计算:s=1+12+123+1234+12345。请填空。#include <stdio.h>void main() int t=0,s,i;_; for( i=1; i<=5; i+) t=i+_;s=s+t; printf("s=%dn&qu

13、ot;,s);2、以下程序的功能是输出如下形式的方阵: 13 14 15 169 10 11 125 6 7 81 2 3 4请填空。#include <stdio.h>void main() int i,j,x; for(j=4; _; j-) for(i=1; i<=4; i+) x=(j-1)*4 + _; printf("%4d",x); printf("n"); 四、 编程题(要求给出PAD图或者N-S图)(30分)1、 设计一个C函数,对输入的a、b两个整型参数,返回其中的最小数。利用main函数调用该函数,并输出结果。2、

14、 编程输入10个学生5门课程的成绩,实现:计算每个学生的平均分;计算每门课程的平均分;计算平均方差:,其中xi为第i个学生的平均分。3、 编写一个C程序,求解n!。要求分别用非递归程序和递归程序实现。一、 选择题。DDACD CBCBBCCDABDCABC二、 程序阅读题 (每个5分,共20分)1、67 G 2、1,3,2 3、40 4、10,10,10,10 程序改错题(每个5分,共20分)1、 第一个错误:scanf(“%d”,r)应为scanf(“%d,&r”)。第二个错误:s=PI*r2应为s=PI*r*r。2、 第一个错误:for循环中的第二个表达式应为 i<10。 第

15、二个错误:sum未赋初值,应加入:sum=0; 3、 应该在第二个for之前加入:p=a;4、 应该在每个case语句之后加入break;三、 程序填空题(每个5分,共10分)1、 s=0; t*10 2、j>0;i四、 编程题 专业技术 资料整理 WORD格式可编辑五、 1、#include <stdio.h> int min(int a,int b) return (a<b?a:b); void main() int a,b; scanf(“%d %d”,&a,&b);printf(“%d”,min(a,b); 2、#include <stdi

16、o.h>void main() float score105, stuave10,courseave5,fangcha; float temp1,temp2; int i,j; printf(“Please input the scores :”); for (i=0;i<10;i+)stuavei=0; temp1=0; temp2=0;for (j=0;j<5;j+) scanf(“%f”,&aij); stuavei+=aij;stuavei/=5.0; temp1+=stuavei*stuavei; temp2+=stuavei; for (j=0;j<

17、5;j+) courseavej=0; for (i=0;i<10;i+) courseavej+=scoreij; courseavej/=10.0; fangcha=temp1/n-(temp2/n)*(temp2/n);printf(“the average scores of each student are: ”);for (i=0;i<10;i+) printf(“%5.2f”,stuavei);printf(“the average scores of each course are: ”);for (i=0;i<5;i+) printf(“%5.2f”,courseavei);printf(“the fangcha is %5.2f”,fangcha);3、非递归方法#include <stdio.h>void main()int n,i=0;long fac=1;scanf(“%d”,&n);while (i<n) i+; fac*=i;printf(“%ld”,fac);递归方法:#include <stdio.h>long fac(int n)if (n= =0|n= =1) return 1;else return n*fac(n-1);void main()int n;

温馨提示

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

评论

0/150

提交评论