C语言模拟题.docx
- 文档编号:26344744
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:25
- 大小:368.10KB
C语言模拟题.docx
《C语言模拟题.docx》由会员分享,可在线阅读,更多相关《C语言模拟题.docx(25页珍藏版)》请在冰豆网上搜索。
C语言模拟题
一、单选题
有如下函数调用语句,则可以判断该函数的参数个数是_______。
func(rec1,rec2+rec3,(rec4,rec5));
有语法错误
4
5
3
答案:
3
执行以下程序段后,m的值是。
inta[]={2,1,3,5,4};
intm=10,k,*ptr=a;
for(k=0;k<5;k++)m+=*(ptr+k);
26
24
23
25
答案:
25
下面的for语句执行时,_______将形成无限循环。
答案:
D(依次数下来第四个答案,余类推)
设有intn;从键盘上输入整数给变量n,正确的语句是:
答案:
B
循环语句中,break的作用是_______。
答案:
C
若有数组定义并初始化语句:
chara1[]={’p’,’r’,’o’};chara2[]=〝pro〞;那么下列说法中正确的是__________。
答案:
C
以下正确的语句是__________。
答案:
C
若有以下定义,则能打印出字母‘L’的语句是。
structperson{charname[9];intage;}c[10]={“Wang”,19,”Zhang”,17,”Li”,20,”Zhao”,18},*p=&a[0];
答案:
D
下列程序段的输出结果为().
intx=3,y=2;
printf("%d",x*=y+8/5);
答案:
B
若要打开A盘上根下user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是().
答案:
C
假定建立了以下链表结构,如图所示。
指针p指向如图所示的结点,t为与data同类型的数据变量,则交换p所指向的结点和该结点的下一个结点的数据的语句为:
t=p->data;_____________
答案:
D
要判断char型变量m是否是数字,可以使用表达式__________。
答案:
A
C语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
答案:
A
设要定义n为整型变量,定义x为浮点型变量,正确的语句是:
答案:
B
执行以下代码段后,a的值为().
inta=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
答案:
A
程序填空
输入一个整数,逆序后输出。
函数reverse(intnumber)的功能是返回number的逆序数。
例如reverse(12345)的返回值是54321。
运行示例:
输入整数:
-1230
逆序后:
-321
源程序:
#include
intreverse(int);
voidmain()
{intin;
____1____;intm
printf("输入整数:
");
scanf("%d",&in);
m=____2____;reverse(in)
printf("逆序后:
%d\n",m);
getchar();/*暂停程序,按任意键继续*/
}
intreverse(intnumber)
{____3____;intflag
intres=0;
flag=number<0?
-1:
1;/*flag标志正负数*/
if(number<0)number=-number;
while(number!
=0)
{
res=res*10+number%10;
____4____;number=number/10
}
return____5____*res;flag
}
输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。
运行示例:
输入字符串:
ABCabc23+45#
各类字符个数:
letter=6,digit=4,other=2
源程序:
#include
voidmain()
{intdigit,letter,other;
char____1____;ch
digit=letter=0;
other=____2____;0
printf("输入字符串:
");
while((ch=getchar())!
='\n')
if((ch>='a'&&ch<='z')||(____3____))ch>='A'&&ch<='Z'
letter++;
elseif(ch>='0'&&ch<='9')
digit++;
else
____4____;other++
printf("各类字符个数:
\n");
printf("letter=%d,digit=%d,other=%d\n",letter,digit,other);
getchar();/*暂停程序,按任意键继续*/
}
程序运行时,输入整数n(0 如输入4,则输出: 1 222 33333 源程序: #include voidmain() {inti,j,n; scanf("%d",&n); for(i=1;____1____;i++)i<=n { for(j=1;j<=n+1-i;j++) putchar('');/*输出空格*/ for(j=1;j<=____2____;j++)i*2-1 printf("%d",i); printf("____3____");\n } getchar();/*暂停程序,按任意键继续*/ } 操纵题 二、程序调试题(3小题,共20分) 1.程序调试题1(B_2_1.C) 调试要求: 下列程序不能得到正确的结果,它包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。 将结果(包括B_2_1.C文件和B_2_1.EXE文件)保存到目录C: \KS\中。 功能说明: 利用格里高利公式π/4=1-1/3+1/5-1/7+......求前n.项的π值。 如输入: 5则输出: pi=3. 又输入: 10000则输出: pi=3. 带错误原程序(见C: \KS\B_2_1.C): #include #include main() { floatpi=0,n,i; intsign=1; scanf("%f",&n);/*modified*/ for(i=1;i<=n;i++) { pi+=sign/(2*i-1); sign=-sign; } pi=4*pi;/*modified*/ printf("pi=%f\n",pi); getch(); } 2.程序调试题2(B_2_2.C) 调试要求: 下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。 将结果(包括B_2_2.C文件和B_2_2.EXE文件)保存到目录C: \KS\中。 功能说明: 从键盘输入一个十进制整数n,转化成二进制存入数组a,输出二进制结果。 如输入: 23则输出: 10111 又输入: 1234则输出: 带错误原程序(见C: \KS\B_2_2.C): #include #include main() { inta[16],n,i;/*modified*/ scanf("%d",&n); for(i=0;n>0;i++)/*modified*/ { A[i]=n%2;/*modified*/ n/=2; } while(i>0) printf("%d",a[--i]); getch(); } 3.程序调试题3(B_2_3.C) 调试要求: 下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。 将结果(包括B_2_3.C文件和B_2_3.EXE文件)保存到目录C: \KS\中。 功能说明: 程序从键盘输入一行字符串,所有字符依次向右循环移动m个位置并输出,移出的字符循环到最左边。 如输入: 3 则输出: 带错误原程序(见C: \KS\B_2_3.C): #include #include #include voidshift_s(chara[],intn,intm)/*a数组的n个字符右移m个位置*/ { inti,j,t; for(i=1;i { for(j=n;j>=0;j--)/*modified*/ a[j]=a[j-1];/*移位并复制*//*modified*/ a[0]=a[n]; } a[n]='\0'; } main() { charstra[80]; inti,n,m; gets(stra); n=strlen(stra); scanf("%d",&m); shift_s(stra,n,m);/*函数调用参数*/ puts(stra);/*modified*/ getch(); } 四、编程题(2小题,共35分) 1.编程题1(B_4_1.C) 编程要求: 请按题中的功能要求,编写程序并能得到正确的结果。 将结果(包括B_4_1.C文件和B_4_1.EXE文件)保存到目录C: \KS\中。 功能说明: 编写程序,实现以下成绩处理功能(输出格式参见示例): (1)输入10个成绩(整数类型,数组名记为a); (2)计算并输出最高分(记为max)、最低分(记为min)与成绩中值(记为midd),其中成绩中值为最高分与最低分的平均值; (3)将midd及以上的成绩归为A档,midd以下的成绩归为B档,统计并输出A、B两档的人数。 运行示例: 输入: 88595074609975906870 输出: Max=99,Min=50,Midd=74.5,A=4,B=6 说明: 输入10个整数中,最大值为99,最小值为50,99与50的中值为74.5(保留一位小数输出),10个整数中成绩≥74.5的数据为4个(88,99,75,90),成绩<74.5的数据有6个。 参考答案: #include intmmax(inta[],intn) { inti,max; max=a[0]; for(i=1;i if(a[i]>=max) {max=a[i];} returnmax; } intmmin(inta[],intn) { inti,min; min=a[0]; for(i=1;i if(a[i]<=min) {min=a[i];} returnmin; } main() { inta[10],i,k=0,max,min; floatmidd; for(i=0;i<10;i++) scanf("%d",&a[i]); max=mmax(a,10); min=mmin(a,10); midd=min+(max-min)/2.0; for(i=0;i<10;i++) if(a[i]>=midd)k++; printf("Max=%d,Min=%d,Midd=%4.1f,A=%d,B=%d\n",max,min,midd,k,10-k); } 2.编程题2(B_4_2.C)参考2010年的试卷编程题的第一题 编程要求: 请按题中的功能要求,编写程序并能得到正确的结果。 将结果(包括B_4_2.C文件和B_4_2.EXE文件)保存到目录C: \KS\中。 功能说明: 编写程序,通过以下步骤验证一个正整数是否符合特定的规则: (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"中。 输出格式参见以下示例。 运行示例1: 输入: 1164 输出: 116: 1+2+4+29+58=94,Pass 运行后文件内容: 116494 说明: 输入数为1164(对应n),分拆为116(对应a)和4(对应b),116的因子为1、2、4、29和58,累加和为94(对应s),s的个位数等于b(4),输出"Pass",a,b,s保存在文件中。 运行示例2: 输入: 1234 输出: 123: 1+3+41=45,Fail 运行后文件内容: 123445 说明: s的个位数5不等于b(4),输出"Fail",同时将a,b,s的值保存在文件中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟
![提示](https://static.bdocx.com/images/bang_tan.gif)