收藏 分销(赏)

2022年二级C语言程序设计期末大作业.doc

上传人:w****g 文档编号:9841337 上传时间:2025-04-10 格式:DOC 页数:15 大小:92.54KB 下载积分:8 金币
下载 相关 举报
2022年二级C语言程序设计期末大作业.doc_第1页
第1页 / 共15页
2022年二级C语言程序设计期末大作业.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
二级C语言程序设计期末大作业(3-4-5) 一、单选题 1. C 语言程序中可以对程序进行注释,注释某些必要用符号__C___括起来。 A. { 和 } B. [ 和 ] C. /* 和 */ D. */ 和 /* 2. 设要定义n为整型变量,定义x为浮点型变量,对旳语句是:_B____ 。 A. int n,float x, B. int n,float x; C. int n;float x, D. int n;float x; 3. 设有int n;从键盘上输入整数给变量n,对旳语句是:__D___ 。 A. scanf( n ); B. scanf( "n" ); C. scanf( "%d",n ); D. scanf( "%d",&n ); 4. 程序段 int x=3,y=2; printf("%d",x*=y+8/5); 输出成果为__D___ 。 A. 1 B. 5 C. 7 D. 9 5. 要判断char型变量m与否是数字,可以使用体现式_____B_____。 A. 0<=m && m<=9 B. m>='0' && m<='9' C. "0"<=m && m<="9" D. '0'<=m <='9' 6. 执行如下代码段后,a值为___A__。 int a=1,b=2,c=3; if(a>b) a=b; if(a>c) a=c; A. 1 B. 2 C. 3 D. 不拟定 7. 下面for 语句执行时,____B___将形成无限循环。 A. for(s=j=0;j<100;j+=1) s+=j; B. for(s=j=0;j<100;j+1) s+=j; C. for(s=j=0;j<100;++j) s+=j-1; D. for(s=j=0;j<100;j++) s+= j; 8. 循环语句中,break作用是____B___。 A. 终结程序运营 B. 结束本次循环 C. 从本循环体内跳出 D. 跳出子函数 9. 如下对旳语句是______D____。 A. int a[1][4] = {1,2,3,4,5}; B. float x[3][ ] = {{1},{2},{3}}; C. long b[2][3] = {{1},{1,2},{1,2,3}}; D. double y[ ][3] = {0}; 10. 执行如下程序段后,m值是__C___。 int a[]={2,1,3,5,4}; int m=10,k,*ptr=a; for(k=0;k<5;k++) m += *(ptr+k); A. 23 B. 24 C. 25 D. 26 11. 若有数组定义并初始化语句:char a1[]={’p’,’r’,’o’} ;char a2[]=〝pro〞 ;则下列对旳说法是____D______。 A. a1和a2完全相似 B. a1和a2不同,a1是指针 C. a1和a2存储单元数目相似 D. a1和a2不同,a2存储单元数目多 12. 若有函数调用语句: func(rec1,rec2+rec3,(rec4,rec5)); 则可以判断该函数参数个数是___A____。 A. 3 B. 2 C. 5 D. 有语法错误 13. 若有如下定义: struct person{ char name[9]; int age;}c[10]={"Wang",19,"Zhang",17,"Li",20,"Zhao",18},*p=&a[0]; 则能打印出字母'L'语句是__D___。 A. printf(“%c”,c[3].name); B. printf(“%c”,c[3].name[1]); C. printf(“%c”,c[2].name[1]); D. printf(“%c”,c[2].name[0]); 14. 若要打开A盘根目录下user子目录下名为abc.txt文本文献进行读、写操作,则下面符合此规定函数调用是__B___ 。 A. fopen("A:\user\abc.txt","r"); B. fopen("A:\\user\\abc.txt","r+"); C. fopen("A:\user\abc.txt","rb"); D. fopen("A:\\user\\abc.txt","w"); 15. 若建立了如下链表构造,如图6-12所示。指针p指向如图所示结点,t为与data同类型数据变量,则互换p所指向结点数据和该结点下一种结点数据语句为:t=p->data;____B_____。 图6-12 链表构造 A. p->next->data = p->data;p->data =t; B. p->data = p->next->data;p->next->data =t; C. p->data = t;p->next->data = p->data; D. p->next->data = t;p->data = p->next->data; 二、程序填空题 1. 程序运营时,输入整数n(0<n<10)后,输出一种数字金字塔。如输入4,则输出: 1 222 33333 4444444 源程序: #include <stdio.h> void main() { int i,j,n; scanf("%d",&n); for(i=1;____i<=n____;i++) { for(j=1;j<=n+1-i;j++) putchar(' '); /* 输出空格 */ for(j=1;j<=____i*2-1____;j++) printf("%d",i); printf("____\n____"); } getchar(); /*暂停程序,按任意键继续*/ } 2. 输入一行字符,记录并输出其中英文字母、数字和其她字符个数。 运营示例: 输入字符串:ABCabc23+45# 各类字符个数:letter=6,digit=4,other=2 源程序: #include <stdio.h> void main( ) { int digit,letter,other; char ____ch___; digit = letter = 0; other = ___0____; printf("输入字符串:"); while( (ch = getchar())!= '\n') if((ch >= 'a' && ch <= 'z') || _______(ch >= 'A' && ch <= 'Z')_____) letter ++; else if (ch >= '0' && ch <= '9') digit ++; else ____other++____; printf("各类字符个数:\n "); printf("letter=%d,digit=%d,other=%d\n",letter,digit,other); getchar(); /*暂停程序,按任意键继续*/ } 3. 输入一种整数,逆序后输出。函数reverse(int number)功能是返回number逆序数。例如reverse(12345)返回值是54321。 运营示例: 输入整数:-1230 逆序后:-321 源程序: #include <stdio.h> int reverse(int); void main( ) { int in; ____int m____; printf("输入整数:"); scanf("%d",&in); m = ____reverse(in)____; printf("逆序后:%d\n",m); getchar();/*暂停程序,按任意键继续*/ } int reverse(int number) { ____int flag____; int res=0; flag = number < 0 ?-1 :1; /* flag标志正负数 */ if(number < 0) number = - number; while(number != 0) { res = res*10 + number%10; ____number=number/10____; } return ____flag____*res; } 三、操作题 (一)程序调试题 1. 程序调试题1 调试规定:下列程序涉及2个错误,请按题中功能规定,调试并修改该程序(在所修改语句后加/*******/字样注释),使其运营能得到对旳成果。将成果(波及B_2_1.C文献和B_2_1.EXE文献)保存到指定目录中。 功能阐明:运用格里高利公式π/4=1-1/3+1/5-1/7+......求前n.项π值。 如输入:5 则输出:pi=3.339683 又输入:10000 则输出:pi=3.141498 带错误原程序(见\B_2_1.C): #include <stdio.h> main( ) { float pi=0,n,i; int sign=1; scanf("%f",n); /* scanf("%f",&n);*/ for (i=1;i<=n;i++) { pi+=sign/(2*i-1); sign=-sign; } pi=4*pi /* pi=4*pi;*/ printf("pi=%f\n",pi); getchar(); /*本句无错;暂停程序,按任意键继续 */ } 2. 程序调试题2 调试规定:下列程序涉及3个错误,请按题中功能规定,调试并修改该程序(在所修改语句后加/*******/字样注释),使其运营能得到对旳成果。将成果(波及B_2_2.C文献和B_2_2.EXE文献)保存到指定目录中。 功能阐明:从键盘输入一种非负十进制整数n(n<32768),转化成二进制存入数组a,输出二进制成果。 如输入:23 则输出:10111 又输入:1234 则输出: 带错误原程序(见\B_2_2.C): #include <stdio.h> main() { int a[16],n; /* int a[16],n,i;*/ scanf("%d",&n); for (i=0;n<0;i++) /* for (i=0;n>0;i++) */ { a(i)=n%2; /* a[i]=n%2;*/ n/=2; } while(i>0) printf("%d",a[--i]); getchar(); /*本句无错;暂停程序,按任意键继续 */ } 3. 程序调试题3 调试规定:下列程序涉及3个错误,请按题中功能规定,调试并修改该程序(在所修改语句后加/*******/字样注释),使其运营能得到对旳成果。将成果(波及B_2_3.C文献和B_2_3.EXE文献)保存到指定目录中。 功能阐明:程序从键盘输入一行字符串,所有字符依次向右循环移动m个位置并输出,移出字符循环到最左边。 如输入: 3 则输出: 带错误原程序(见\B_2_3.C): #include <stdio.h> #include <string.h> void shift_s(char a[],int n,int m) /*a数组n个字符右移m个位置*/ { int i,j,t; for(i=1;i<m;i++) /* for(i=1;i<=m;i++) */ { for (j=n;j>0;j--) a[j] = a[j+1]; /*移位并复制*/ /* a[j]=a[j-1];*/ a[0]=a[n]; } a[n]='\0'; } main() { char stra[80]; int i,n,m; gets(stra); n = strlen(stra); scanf("%d",&m); shift_s(stra,n,m); /*函数调用参数*/ puts(*stra); /* puts(stra);*/ getchar(); /*本句无错;暂停程序,按任意键继续 */ } (二)编程题(2小题,共35分) 1.编程题1 编程规定: 请按题中功能规定,编写程序并能得到对旳成果。将成果(波及B_4_1.C文献和B_4_1.EXE文献)保存到指定目录中。 功能阐明:编写程序,实现如下成绩解决功能(输出格式参见示例): (1)输入10个成绩(整数类型,数组名记为a); (2)计算并输出最高分(记为max)、最低分(记为min)与成绩中值(记为midd),其中成绩中值为最高分与最低分平均值(保存一位小数输出); (3)将midd及以上成绩归为A档,midd如下成绩归为B档,记录并输出A、B两档人数。 运营示例: 输入:88 59 50 74 60 99 75 90 68 70 输出:Max=99,Min=50,Midd=74.5,A=4,B=6 程序如下: #include <stdio.h> main() { int a[10],i,sum=0; int Max,Min,A=0,B=0; float Midd; printf("输入:"); for(i=0;i<10;i++) scanf("%d",&a[i]); Max=a[0]; for(i=1;i<10;i++) if(Max<a[i]) Max=a[i]; Min=a[0]; for(i=1;i<10;i++) if(Min>a[i]) Min=a[i]; Midd=(Max+Min)/2.0; for(i=0;i<10;i++) { if(a[i]>Midd) A++; if(a[i]<Midd) B++; } printf("输出:Max=%d,Min=%d,Midd=%.1f,A=%d,B=%d\n",Max,Min,Midd,A,B); } 2.编程题2 编程规定: 请按题中功能规定,编写程序并能得到对旳成果。将成果(波及B_4_2.C文献和B_4_2.EXE文献)保存到指定目录中。 功能阐明:编写程序,通过如下环节验证一种正整数与否符合特定规则: (1)输入一种4位正整数n,将n分拆为a与b两某些:a为n高3位,b为n最低位; (2)计算a所有因子之和,记为s(当1≤i<a时,如果a是i倍数,则i是a因子); (3)如果s个位数等于b,则输出"Pass",否则输出"Fail"; (4)将a,b,s值保存到文本文献"B42.TXT"中。 输出格式参见如下示例。 运营示例: 输入:1164 输出:116:1+2+4+29+58=94,Pass 运营后文献内容:116 4 94 阐明:输入数为1164(相应n),分拆为116(相应a)和4(相应b),116因子为1、2、4、29和58,累加和为94(相应s),s个位数等于b(4),输出"Pass",a,b,s保存在文献中。 #include<stdio.h> void main() { int a,b,i,n,s=0; printf("输入一种四位数:"); scanf("%d",&n); a=n/10; b=n%10; printf("%d:",a); for(i=1;i<a;i++) {if(a%i==0) { if(i==1) printf("%d",i); else printf("+%d",i); s+=i; } } printf("=%d,",s); if(s==94) printf("pass\n"); else printf("fail\n"); }
展开阅读全文

开通  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 

客服