c语言编程例题及答案 .

以下程序的功能是 : 通过函数 func 输入字符并统计输入字符的个数 。 输入时用字符 @ 作为输入结束标志。请填空。

#include <stdio.h>

long 【 14 】 ; /* 函数说明语句 */

main()

{ long n;

n=func(); printf("n=%ld\n",n);

}

long func()

{ long m;

for(m=0;getchar()!='@'; 【 15 】 );

return m;

}


正确答案:


从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。main(){ float s,gmax,gmin;scanf("%f,"&s)gmax=s;gmin=s;while{if(s>gmax)gmax=s;ifgmin=s;scanf("%f",&s);}printf("gmax=%f\ngmin=%f\n"gmax,gmin);}


正确答案:s>=0 s因为要求如果输入负数时就结束输入,因此要求循环的判断条件是s>=0,如果输入的分数比最大值大,将其值赋给gmax,如果比最小值小,将值赋给gmin.


已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是【】。 include ma

已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是【 】。

include

main()

{ char a, b;

a=getchar(); scanf("% d", &b);

a=a-'A'+'0'; b=b*2;

printf("% c % c\n", a, b);

}


正确答案:1B
1B 解析:从键盘输入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在输出时均需要把a,b转化为字符型,因此输出为1B。


(29)通过InputBox函数可以产生输入对话框。若执行下列语句: st$=InputBox("请输入字符串,""字符串对话框","字符串") 运行程序,用户输入完毕并单击“确定”按钮后,st$变量的内容为A.字符串 B.请输入字符串 C.字符串对话框 D.用户输入内容


正确答案:D
【解析】InputBox函数用于产生一个输入对话框,在对话框中显示提示,等待用户在对话框的文本框中输入内容或按下按钮,然后返回包含文本框内容的字符串。


请补充main函数,该函数的功能是:从键盘输入一组字符串,以‘*’结束输入,并显示出这个字符串。

例如,输入abcdefghi*,结果显示adcdefghi。

注意:部分源程序给出如下.

请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。

试题程序:

include<stdio. h>

define N 80

main ()

{

iht i=-l, j=0;

char str IN];

clrscr ();

printf("\n Input a string \n");

do

{

i++;

scanf(【 】);

}while(【 】);

printf ("\n**display the string** \n");

while (j<i)

{

printf (【 】);

j++;

}

}


正确答案:"%c"&str[i] str[i]!='*' "%c"str[j]
"%c",&str[i] str[i]!='*' "%c",str[j] 解析:第一空:本题考查对标准输入函数scanf()的掌握,输入的为字符,所以格式控制符为“%c”,并将输入的字符存于数组str中,注意在地址表列中,要在数组元素str[i]前加上取址符“&”。第二空:由于输入的字符串以'*' 结束,所以只要输入的字符不是'*',就继续输入,即do-while循环继续执行。第三空:本题考查对标准输出函数Pdntf()的掌握,因为输;U的为字符,所以格式控制符为“%c”。


实 验 报 告 三(四学时)课 程C语言程序设计实验项目函数程序设计成 绩专业班级学 号批阅日期姓 名实验日期指导教师2.1 实验目的(1)掌握函数的定义和调用; (2)了解函数间的参数传送; 2.2 基础实验【题目3-1】编写函数实现将输入的字母转换成大写字母(若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”)。 算法分析: 1、输入:通过键盘接收一个字符; 2、条件判断:调用判别函数 3、函数功能为:蒋所输入字符进行判别处理,若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”4、程序结束。【实验3-1】代码及运行结果:【题目3-2】从键盘输入若干个同学计算机课程期末考试成绩(学生人数可由用户输入),求该课程的期末成绩的平均分并输出。函数功能要求:实现若干(例如5名)同学的的期末成绩输入,并统计出平均分。 算法分析: 1、输入:通过键盘接收同学个数; 2、调用求平均分函数 3、输出平均成绩 4、程序结束。【实验3-2】代码及运行结果:【题目3-3】请用函数编写程序实现:计算3 到100 之间所有素数的平方根之和,并输出。s=148.874270。算法分析: 1、编写函素数判别函数,确定返回标记,如果是素数返回1,否则返回0 2、编写主函数,用一重循环遍历100以内所有数据 2.1、通过素数判别函数对循环的数据进行是否为素数的判别 2.2、返回判别为真的整数,并输出 3、程序结束。【实验3-3】代码及运行结果:#include#includeint Prime(int x)int i ;if(x=1)return 0;for(i=2;i=x-1;i+)if(x%i=0)return 0;return 1;int main()double i,sum;i=3;sum=0;while(i n,。例如: m12,n8 时,运行结果为495.000000。【实验3-5】代码及运行结果:【实验3-6】编写一个函数,通过计算机随机产生一道四则运算题(两个操作数为在1-10之间的整数,操作类型为加、减、乘、除中的任意一种),并要求作答。若输入答案正确,则显示“Right!”,否则显示“Not correct!”。然后,在main函数中调用该函数,完成若干道题目测试,并显示回答正确的题目数量。提示:关于生成随机数程序运行实例:【实验3-6】代码及运行结果:#include#include#include#includeint calculate (int s);int main()int s;printf(请输入需要完成的题目数量:);scanf(%d,&s);printf(n);printf(回答正确%d道题目n,calculate(s);return 0;int calculate(int s)int a=0;int b=0;int mode=0;double c=0;double result=0;int count=0;int i;srand(unsigned)time(NULL);for(i=1;i=s;i+)a=rand()%10+1;b=rand()%10+1;mode=rand()%4;printf(%d,a);switch(mode)case 0:printf(+);result=a+b;break;case 1:printf(-);result=a-b;break;case 2:printf(*);result=a*b;break;case 3:printf(/);result=1.0*a/b;break;default:printf(something is wrong!n);break;printf(%d=n,b);printf(请输入计算结果:n);scanf(%lf,&c);if(fabs(c-result)1e-6)count+;printf(Rightnn);elseprintf(Wrongn正确答案是:%fnn,result);return count;3 实验总结

以下程序的功能是,从键盘上输入若干学生的成绩,统计并输出最高分数和最低分数,当输入负数时结束输入,请填空。

Private Sub Command1_C1iek()

Dim x As Single

Dim amax As Single,amln As Single

x=InputBox("请输入分数")

amax=x

amin=x

Do While【 】

If x>amax Then

amax=x

End If

If【 】Then

amin=x

End If

x=InputBox("请输入分数")

Loop

Print amax,amin

End Sub


正确答案:x>=0或Not x0 xamin或Not x>=amin
x>=0或Not x0 , xamin或Not x>=amin 解析:本题主要是对求最值算法的考查。题中要求当输入负数时结束输入,可知控制程序的条件应是输人数x必须大于等于0。用语句表示应为x>=0或Not x0。程序中用变量amin存放最低分,又因为语句amin= x,则可推断出x值比初始化时的最低分要小的条件。故条件表达式应写成xamin或 Not x>=amin。


请编写函数fun(),它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符1,则输出3。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<coio.h>

include<stdio.h>

define M 81

int fun(char *ss,char c)

{

}

main()

{ char a[M],ch;

clrscr();

printf("\nPlease enter a string:");

gets(a);

printf("\nPlease enter a char:");

ch=getchar();

printf("\nThe number of the char is:%d \n",fun(a,ch));

}


正确答案:int fun(char *sschar c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; }
int fun(char *ss,char c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; } 解析:从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历:若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若“串的字符和c串的字符不对应相同,则继续对,s串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同则表示又出现一次.


已知字符A的ASCII代码值为65,以下程序运行时,若从键盘输入:B33<回车>。则输出结果是______。 incl

已知字符A的ASCII代码值为65,以下程序运行时,若从键盘输入:B33<回车>。则输出结果是______。 #include "stdio.h" main() { char a,b; a=getchar();scanf("Xd",&b); a=a-'A'+'0';b=b*2; printf("%c%c\n",a,b); }

A.2 B

B.1 B

C.3 B

D.4 B


正确答案:B


以下是学生选课系统中“学生查询成绩”交互行为的描述,请按要求回答问题。

交互开始时终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。

在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回到首页;若输入学号正确,出现“请输入课程名”。

一旦输入课程名,就开始核对课程名称:若输入的课程名不正确,则显示“输入的课程名不正确”,此次查询取消,回到首页;若输入的课程名正确,则根据“学号”和“课程名”,查询学生成绩。

若查询学生成绩成功,则显示查询到的成绩,系统询问是否继续查询:当用户选择“继续查询”后回到“请输入学号”;当用户选择“结束查询”后回到首页。

若查询学生成绩失效,则显示“查询失效”后回到首页。

请画出该系统以上交互行为的状态图(应满足功能图的要求,不可画成流程图)。


正确答案:根据系统的规格说明画出状态图如下图所示。 其中 M1:选择“查询”请求 M2:输入学号 M3:输入了正确的学号 M4:输入了错误的学号 M5、M9、M13:回归首页 M6:输入课程名 M7:输入了正确的课程名 M8:输入了错误的课程名 M10:选择查询成绩 M11:查询成绩成功 M12:查询成绩失败 M14:系统询问是否继续查询 M15:用户选择“继续查询” M16:用户选择“结束查询”
根据系统的规格说明,画出状态图,如下图所示。 其中, M1:选择“查询”请求 M2:输入学号 M3:输入了正确的学号 M4:输入了错误的学号 M5、M9、M13:回归首页 M6:输入课程名 M7:输入了正确的课程名 M8:输入了错误的课程名 M10:选择查询成绩 M11:查询成绩成功 M12:查询成绩失败 M14:系统询问是否继续查询 M15:用户选择“继续查询” M16:用户选择“结束查询”


以下程序的功能是:通过函数func 输入字符,并统计输入字符的个数。输入时用字符@作为输入结束标志。请填空。#include <stdio.h>long ; /* 函数说明语句 */main(){ long n; n=func(); printf("n=%ld\n",n);}long func(){ long m; for( m=0; getchar()!=’@’;); retum m;}


正确答案:func(),m++
本题考查函数的声明及对函数功能的理解。题目中的程序可以分为两个部分,一个为主函数main,另一个为func函数。C语言中如果使用用户自定义的函数,并且该函数与调用它的函数在同一个文件中,则需要在主调函数中对该函数进行声明。如果被调用的函数在主调函数之前,则可以不必加以声明。如果在所有的函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必对所调用的函数再进行声明。题目中既没有在main函数之前对func函数进行定义,在main函数中也没有对func函数的声明,故要在所有的函数定义之前对func函数进行声明。第一个填空是对函数声明语句的补充,填入func()。第二个填空是在func函数的循环变量增值处,通过该函数能够输入字符,并对输入的字符进行字数统计。func函数用m的值作为字符个数的统计值并返回,而m是for语句中的循环变量,初始为0,循环条件为一个表达式getchar,每次输入一个字符,只要不是’@’,则继续循环调用for语句,循环变量增值处应该填入能反映m的值发生变化的语句,m是对字符个数的统计量,必然随着输入的合法字符数量增多而变大,应填入语句m++。

更多 “c语言编程例题及答案 .” 相关考题
考题 问答题从键盘输入若干个数,当输入0时结束输入,求这些数的和以及平均值。 提示:设输入的数存放在x中,sum表示和,n表示读入数的个数,则求若干个数的和,就是对x进行累加,即sum=sum+x,其中sum的初值为0。如果读入个数n大于0,则输出sum、sum/n。 要求:采用while与if结构语句实现。正确答案:程序:sum=0; n=0;x=input('Enter a number (end in 0):');while x~=0sum=sum+x;n=n+1;x=input('Enter a number (end in 0):');endif n>0summean=sum/nend解析:暂无解析

考题 Private Sub Command1_Click() a=Val(InputBox("请输入a的值=")) b=Val(InputBox("请输入a的值=")) x=a+b Ifa>b Then x=a-b End If Print x End Sub 若运行时从键盘输入a和b分别为3和4,则程序输出的结果为()A、1B、7C、10D、11正确答案:B

考题 运行下面程序时,从键盘输入字母H,则输出结果是( )。A.B.C.D.A.AB.BC.CSXB运行下面程序时,从键盘输入字母H,则输出结果是( )。A.B.C.D.A.AB.BC.CD.D正确答案:C参考答案

考题 以下程序统计从终端输入的字符中大写字母的个数。用号作为输入结束标志,请填空。正确答案:

考题 问答题编写一函数reverse实现一个字符串按反序存放,要求在主函数main中输入字符串,并输出反序后的字符串。不能使用strlen库函数。      例如:输入string,则输出gnirts。正确答案:#include "stdio.h"void reverse(char str[]){int i,j;char t;for(j=0;str[j]!=/0;j++);/*求字符串长度*/for(i=0,j=j-1;i<j;i++,j--){t=str[i];str[i]=str[j];str[j]=t;}}main(){char str[80];printf("/nPlease input a string:");gets(str);reverse(str);printf("/nString reverse:");puts(str);}解析:暂无解析

考题 给定程序MODll.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIs is aboot,则输出应该是:1、0、2、2、0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!正确答案:(1)num[k]=0; (2)switch(*s)(1)num[k]=0; (2)switch(*s) 解析:本题中函数的功能是统计字符串中各元音字母(即A、E、I、O、U)的个数。其中,本题在while循环中采用switch-case条件判断字符串中的每一个字符并进行统计。

考题 编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如果输入的字符是小写字母,则转换为大写字母,否则不转换。正确答案:charch,c;Console.WriteLine("请输入一个字符");ch=char.Parse(Console.ReadLine());if(ch>=’A’&&ch<=’Z’){c=(char)(ch+32);Console.WriteLine("字符{0}为大写字母,转换为小写字母为{1}",ch,c);}elseif(ch>=’a’&&ch<=’z’){c=(char)(ch-32);Console.WriteLine("字符{0}为小写字母,转换为大写字母为{1}",ch,c);}elseConsole.WriteLine("{0}既不是大写字母也不是小写字母",ch);

考题 问答题编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如果输入的字符是小写字母,则转换为大写字母,否则不转换。正确答案:charch,c;Console.WriteLine("请输入一个字符");ch=char.Parse(Console.ReadLine());if(ch>=’A’&&ch<=’Z’){c=(char)(ch+32);Console.WriteLine("字符{0}为大写字母,转换为小写字母为{1}",ch,c);}elseif(ch>=’a’&&ch<=’z’){c=(char)(ch-32);Console.WriteLine("字符{0}为小写字母,转换为大写字母为{1}",ch,c);}elseConsole.WriteLine("{0}既不是大写字母也不是小写字母",ch);解析:暂无解析

考题 编一个程序,从键盘输入一个字符串,用foreach循环语句,统计其中大写字母的个数和小写字母的个数。正确答案:strings;intn1=0,n2=0;Console.WriteLine("请输入一个字符串");s=Console.ReadLine();foreach(charcins){if(c>=’A’&&c<=’Z’)n1++;elseif(c>=’a’&&c<=’z’)n2++;elsecontinue;}Console.WriteLine("大写字母有{0}个,小写字母有{1}个",n1,n2);

考题 从键盘输入一组小写字母,保存在字符数组str中。请补充函数proc(),该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入abcdefg,输出aBcDeFg。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proe()的横线上填入所编写的若干表达式或语句。试题程序:正确答案:【解析】要将字符串中所有下标为奇数的小写字母转化为大写字母,应该检查字符串str中从第一个到最后一个字符,判断其下标是否为奇数,因此【l】填“str[i]!=ˊ\0ˊ”。每找到一个下标为奇数的小写字母。就将其转换为大写字母,大写字母的ASCⅡ码值比与其对应的小写字母小32,因此【2】填“32”。每判断完一个字符,要为检查下一个字符做准备,因此【3】填“i++”。