收藏 分销(赏)

高级语言程序设计(C)2019春答案.doc

上传人:a199****6536 文档编号:2402512 上传时间:2024-05-29 格式:DOC 页数:6 大小:102.03KB 下载积分:6 金币
下载 相关 举报
高级语言程序设计(C)2019春答案.doc_第1页
第1页 / 共6页
高级语言程序设计(C)2019春答案.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
学习中心/函授站_ 姓 名 学 号 西安电子科技大学网络与继续教育学院 2019学年上学期 《高级语言程序设计(C)》期末考试试题 (综合大作业) 题号 一 二 三 四 五 总分 题分 40 10 10 20 20 得分 考试说明: 1、大作业试题于2019年4月25日公布,2019年4月26日至2019年5月12日在线上传大作业答卷(最多上传10张图片); 2、考试必须独立完成,如发现抄袭、雷同均按零分计; 3、答案须用《西安电子科技大学网络与继续教育学院综合大作业答题纸》手写完成,要求字迹工整、卷面干净。 一、 选择题(本题共20道小题,共40分。) 1. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是 A)把x和y按从大到小排列 B)把x和y按从小到大排列 C)无确定结果 D)交换x和y中的值 2. 下面程序的输出是 void prtv(int *x) { printf("%d\n", ++(*x));} main() { int a=25; prtv(&a);} A) 23 B) 24 C) 25 D) 26 3. int x=10, y=20, z=30; if(x>y) z=x; x=y; y=z; 以上语句执行后x, y, z的值是 A) x=10,y=20,z=30     B) x=20,y=30,z=30 C) x=20,y=30,z=10     D) x=20,y=30,z=20 4. 设有以下宏定义: #define N 3 #define Y(n) ((N+1)*n) 则执行语句:z=2 *(N+Y(5+1))后,z的值为 A)出错 B)42 C)48 D)54 5. 逻辑运算符两侧运算对象的数据类型是()。 A) 只能是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据 6. 当执行以下程序段时 x=-1; do { x=x*x;} while(!x); A)循环体将执行一次 B)循环体将执行两次 C)循环体将执行无限次 D)系统将提示有语法错误 7. int x=3; do { printf("%3d",x-=2);} while(!(--x)); 以上程序段的输出结果是 A) 1 B) 3 0 C) 1-2 D) 死循环 8. main() {int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } 以上程序段的输出结果是 A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b 9.以下程序的输出结果是( )。 main() { int num=0; while(num<=2) { num++; printf(“%d\n”,num);} } A) 1     B) 1     C) 1     D) 1 2       2       2 3       3 4 10. 表示关系x≤y≤z的c语言表达式为 A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z) 11. 执行x=((5>1+2)&&2||((2*4<4)-!0))后,x的值为 A) -1     B) 0     C) 1     D) 5 12. 有以下程序 main() { char a[]="programming", b[]="language"; char *p1,*p2; int i; p1=a; p2=b; for(i=0;i<7;i++) if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); } 输出结果是 A)gm B)rg C)or D)ga 13. 以下程序的输出结果是 # include <stdio.h> # include <string.h> main() { char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); } A) 6 B) 7 C) 11 D) 12 14. 运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为 main ( ) { int m,n; printf("Enter m,n:"); scanf("%d%d,&m,&n"); while(m!=n) { while(m>n) m-=n; while(n>m) n-=m; } printf("m=%d\n",m); } A)m=3 B)m=2 C)m=1 D)m=0 15. char ch=’A’; ch=(ch>=‘A’&&ch<=‘Z’)?(ch+’a’-‘A’):ch; 表达式运算后,ch的值是 A) a     B) ‘a’     C) A     D) “a” 16. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是 A) k=*p1+*p2;     B) p2=k;      C) p1=p2;      D) k=*p1*(*p2); 17. 若有以下定义和语句: int u=010,v=0x10,w=10; printf(“%d,%d,%d\n”,u,v,w); 则输出结果是 A) 8,16,10    B) 10,10,10    C) 8,8,10    D) 8,10,10 18. 能正确表示a≥10或a≤0的关系表达式是 A)a>=10 or a<=0 B)a>=10│a<=0 C)a>=10││a<=0 D)a>=10 ││a<=0 19. main( ) {int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf(“a=%d,b=%d\n”,a,b); } 程序的输出结果是 A) a=2,b=1     B) a=1,b=1     C) a=1,b=0     D) a=2,b=2 20. 以下说法中正确的是 A) #define和printf都是C语句 B) #define是C语句,而printf不是 C) printf是C语句,但#define不是 D) #define和printf都不是C语句 二、填空题(每空1分,共10分。) 1. 为表示关系:x≤y≤z ,应使用的C语言表达式是__(X<=Y)&&(Y<=Z)__。 2. C语言本身没有输入输出语句。其输入输出是由____库函数__来完成。 3. 有函数调用fun1(x+y,(y,z),10,fun((x,y―1)));函数fun1有___4_个参数。 4. C程序注释是由____/*_____ 和_____*/___所界定的文字信息组成的。 5. 表达式x=x+1表示成增量表达式为_ x++或++x ___。 6. while语句和do-while语句的区别是_while语句先判断后执行,do-while语句还执行后判断____________。 7. 结构化程序设计中的三种基本结构是__顺序结构、__选择结构、_循环结构__。 三、判断题(本题共10道小题,共10分。) 1. 在不得已的情况下(例如提高程序运行效率),才使用goto语句(错 ) 2. C程序的注释只能是一行(错) 3. 在有参函数中,形参在整个程序一开始执行时便分配内存单元( 错) 4. C语言不允许混合类型数据间进行运算( 对 ) 5. 实参和与其对应的形参共占用一个存储单元(错) 6. 在C程序中对用到的所有数据都必须指定其数据类型(错) 7. 函数的定义和函数的调用均不可以嵌套(错) 8. 如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明(对 ) 9. 在不同函数中可以使用相同名字的变量(对 ) 10. if语句中的表达式不限于逻辑表达式,可以是任意的数值类型(对 ) 四、程序分析题(用列表法列出关键变量在运行过程中的值)(本题3道小题,共20分) 1. (8分)分析程序,给出select函数的功能,解释其形参的含义,并给出main函数的输出结果。 #define N 3 #define M 3 select(int a[N][M],int *n) { int i,j,row=1,colum=1; for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i][j]>a[row][colum]){row=i;colum=j;} *n= row; return ( a[row][colum]); } main() { int a[N][M]={9,11,23,6,1,15,9,17,20},max,n; max=select(a,&n); printf("max=%d,line=%d\n",max,n); } 形参 含义 功能 select a[N][M] 二维数组的址址 查找二维数组中最大值及所在的行 n 指向变量n的指针 main 输出:max=23,line=0 2. (6分)列表分析下面程序的运行步骤和中间结果,给出最后的输出结果 #include <stdio.h> main() { int i=5; char c[6]="abcd"; do { c[i]=c[i―1]; } while(――i>0); puts(c); } i 5 4 3 2 1 0 c[i]=c[i-1]赋值前 C[i] 0 0 d c b a C[i-1] 0 d c b a / 输出 aabcd 3. (6分) 列表分析下面程序的功能 main( ) { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } } i 1 2 3 4 ① for j 4 3 2 1 printf □□□ □□ □ / ② for j 2 printf * 注:□表示空格 五、编程题(本题共2道小题,每题10,共20分。) 编程题要求: (1)先给出伪代码,然后再写出源码,重要变量和语句要加注释; (2)若有子函数,则要给出函数框架设计(函数名、形参、返回类型)。 1. 编写一程序,求100之内的素数。    2. 我们需要一个小程序,输入两个整数,输出这两个数的平方和与平方差,要求: (1)主函数负责接收这两个整数 (2)将计算代码独立做成子函数math (3)在主函数中调用math函数并输出结果到屏幕上 答案: 1、#include"stdio.h" main() { int i,m; int flag; for(i=2;i<=100;i++) { flag=1; for(m=2;m<i;m++) { if(i%m==0) { flag=0; break; } } if(flag==1) printf("%d ",i); } } 2、#include void mach(int x, int y) { printf("x²+y²=%d\n", (x*x + y*y)); printf("x²-y²=%d\n", (x*x - y*y)); } void main() { int num1, num2; scanf("%d%d", &num1, &num2); mach(num1,num2); } 第 6 页 (共 6 页)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服