C程序设计实践题目

合集下载

C++程序设计实践教程思考题答案

C++程序设计实践教程思考题答案

实验1 C++基础6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。

#in clude<iostream>using n amespace std;int mai n(){int i;cin> >i;if(i>=65 && 1<=90 )cout<<char(i-'A'+'a')vve ndl;elsecout«"输入有误"<<endl;} return 0;实验2三、实验思考1.输入直角三角形的两条直角边长,调用平方根库函数sqrt来求斜边的长度#in clude<iostream>#in clude<cmath>using n amespace std;int mai n(){ float a,b,c;coutvv"请输入直角三角形的两条边长:";cin> >a>>b;c二sqrt(a*a+b*b);cout«"直角三角形的斜边="<<c<<endl;return 0;}2 •从键盘输入一个字符,如果输入的是英文大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。

#in clude<iostream>using n amespace std;int mai n(){char c;1coutvv"请输入一个字符:";cin> >c;if(c>='A'&& c<='Z')c+='a'-'A';coutvvcvve ndl;return 0;3•输入一个学生的成绩,如高于60分,贝V输出“ pass” ;否则,输出“failed ”。

c语言课程设计参考题目

c语言课程设计参考题目

c语言课程设计参考题目
以下是一些可以作为C语言课程设计参考的题目:
1. 编写一个简单的C程序,实现一个计算器的功能,包括按键输入、按位运算、结果输出等。

2. 设计一个C语言的数据结构,例如链表、树、图等。

3. 实现一个简单的程序,用于检测一个字符串是否包含某个特
定的字符集。

4. 设计一个C程序,实现一个文件管理系统,包括文件读取、修改、删除、创建等操作。

5. 编写一个C程序,模拟一个简单的计算机操作系统,例如进程
管理、内存管理等。

6. 设计一个C程序,用于处理一个字符串,包括查找特定字符、
替换特定字符、翻译文本等。

7. 实现一个简单的编译器,用于编译C程序。

8. 设计一个C程序,用于实现一个网络应用程序,包括用户登录、数据发送、数据接收等。

9. 编写一个C程序,用于实现一个简单的图形用户界面,例如窗口、菜单、按钮等。

10. 设计一个C程序,用于处理一个音频播放器,包括音频读取、播放、暂停、中断等。

这些题目都是相对来说比较难的,但也都是C语言编程中比较经
典的应用场景。

通过这些题目的训练,可以帮助学生更好地掌握C语
言的编程思想和技巧。

c语言程序设计案例教程 实验项目-设计性题目参考答案

c语言程序设计案例教程 实验项目-设计性题目参考答案

C语言程序设计案例教程(含实验)设计性实验的程序参考答案实验项目一 C程序的编辑、编译、连接和运行题目:编写程序,要求屏幕上显示如下信息:************************ This is a C program .************************程序:#include <stdio.h>void main(){printf(“***********************”);printf(“* This is a C program .*”);printf(“***********************”);}实验项目二数据类型、运算符、表达式题目(1)程序填空:输入1 个实数x,计算并输出其平方根(保留1 位小数)。

填空1.double x,root;2.root=sqrt(x);(2)输入一个大写英文字母,输出相应的小写字母。

填空1.ch=ch+32;实验项目三顺序结构程序设计题目(1)编写程序,输入三角形的三边长a、b、c,求三角形面积area。

程序代码:#include <stdio.h>#include <mach.h>main(){float a,b,c,s,arer;printf(" 请输入三角形的三个边a,b,c:\n");scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("三角形的边为a=%7.2f, b=57.2f, c=%7.2f\n",a,b,c);printf("三角形的面积area=%7.2\n ",area);(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

大学C语言程序设计大作业题目

大学C语言程序设计大作业题目

1数据处理系统一、软件开发目的该软件主要是使用C语言设计开发数据处理程序,实现对数据的排序、查找、插入、计算、输出等功能。

二、数据结构定义一个11*10的二维数组。

三、软件功能说明1.生成100个随机数:调用库函数rand()或random()产生100个随机数,并存储在二维数组中的前十行。

2.选择法排序:用选择法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

3.冒泡法排序:用冒泡法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

4.插入法排序:用插入法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

5.查找数据:输入待查找数据, 在二维数组中逐个查找,若找到输出数据所在位置的行列号,若无该数值则输出“无此数”。

6.转换二进制:将数组中数据转换为二进制并转存到另一数组中输出。

7.转换为素数之和:对于原数组中的数进行判断:若为偶数,则表示成两个素数的和,并输出。

8.插入数据:输入一个数,将该数插入原数组中,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。

9.删除数据输入一个数,若原数组中存在该数,则删除该数,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。

10.退出系统,结束任务。

四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。

系统菜单功能项:1生成100个随机数2选择法排序3冒泡法排序4插入法排序5查找数据6转换二进制7转换为素数之和8插入数据9删除数据10退出系统注意:要求每执行一个具体的功能之后,程序将重新显示菜单。

2.系统要有一定的可靠性、稳定性,能够实现各功能模块。

2图书借阅管理系统一、软件开发目的该软件主要是使用C语言设计开发一个简单的图书借阅管理系统,实现对图书的借书,还书的管理和数据统计。

C程序设计实验补充题(循环结构)

C程序设计实验补充题(循环结构)

北京建筑工程学院计算机教学与网络信息部C语言程序设计基础实验补充题——循环结构部分1.养兔子/acmhome/problemdetail.do?&method=showdetail&id=1063题目描述:一对成熟的兔子每月能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是一个月,而成熟后的第二个月才开始生小兔。

某人领养了一对小兔子,一公一母,请问,第N个月以后,他将会得到多少对兔子。

输入:测试数据包括多组,每组一行,为整数n(1≤n≤90)。

输入以0结束。

输出:对应输出第n个月有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。

样例输入:12样例输出:122.找零钱/acmhome/problemdetail.do?&method=showdetail&id=1068题目描述:我们知道人民币有1、2、5、10、20、50、100这几种面值。

现在给你n(1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过100张,共有几种。

比如4元,能用4张1元、2张1元和1张2元、2张2元,三种表示方法。

输入:输入有多组,每组一行,为一个整合n。

输入以0结束。

输出:输出该面额有几种表示方法。

样例输入:14样例输出:13提示:如果我告诉你,这题是用暴力穷举的方法,你能通过吗?^_^3.漂亮菱形/acmhome/problemdetail.do?&method=showdetail&id=1069题目描述:*************************上面的菱形漂亮吗?现给出菱形的高度,要求你打印出相应高度的菱形,比如上面的菱形高度为7。

输入:测试数据包括多行,每行1个整数h,h为奇数,代表菱形的高度。

输入以0结束。

输出:输出每组对应的菱形。

样例输入:17样例输出:**************************4.统计1到N之间数字1的个数/acmhome/problemdetail.do?&method=showdetail&id=1163题目描述:N为正整数,计算从1到N的所有整数中包含数字1的个数。

C语言程序设计题

C语言程序设计题
{k--;
if((k%13= =0) | | (k%17= =0))
{a=a+k;b++;}
}
Return a;
}
【第3题】题目:产生15个[20,80]上的随机整数:用顺序法(比较法)按从小到大排序输出。
void fun(int a[], int n)
{ int I,j,t;
for(i=0;i<n-1;i++)
int fun(int w)
{
int k,s=0;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!=0);
if(s%5= =0)k=1;
else k=0;
return(k);
}
【第8题】题目:编写函数fun其功能是:求给定正整数n以内的素数之积。(n<28)
long fun(int n)
if(average>a[i]) k++;
return(k);
}
【第13题】题目:用函数将第2个字符串连接到第1个字符串之后,不允许使用strcat函数。
void len_cat(char cl[],char c2[])
{
int i,j;
for(i=0;c1[i]!=’\0’;i++);
for(i=0;c2[i]!=’\0’;i++)
2 3 5 4 9 7 3 1
3 8 10 2 3 8 10 2
9 7 3 1 2 3 5 4
void fun(int pp[3][4])
{int t,n;
for(n=0;n<4;n++)

2.6.3同步自测C语言程序设计实验与习题指导习题答案

2.6.3同步自测C语言程序设计实验与习题指导习题答案

2.6.3同步自测C语言程序设计实验与习题指导习题答案2.6.3 同步自测一、选择题1.在C程序的函数调用时,主调函数中的实参和被调函数中的形参(B)。

(A)个数、次序必须相同,但数据类型可以不考虑(B)个数、次序和对应参数的数据类型都应该相同(C)个数、次序和数据类型均可以不相同(D)对应参数数据类型应相同,但个数和次序可以不考虑2.以下程序的输出结果是(C)。

int x=3,y=4;void main( ){ int x,y=5;x=y++;printf("%d",x);}表达式(A)3 (B)4 (C)5 (D)63.在C语言中,函数默认的存储类型为(A)。

(A)auto (B)register (C)static (D)extern4.执行下面的程序后,变量a的值是(B)。

#include#define SQR(X) X*Xvoid main(){ int a=10,k=2,m=3;a/=SQR(m)/SQR(k);printf("%d\n",a);}(A)10 (B)1 (C)5 (D)05.一个C程序的执行是从(A)。

(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束6.以下有关宏替换的叙述不正确的是(D)。

(A)宏替换不占用运行时间(B)宏名无类型(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的7.设有以下宏定义:#define N 3#define Y(n) (N+1*n)则执行语句:z=2*(N*Y(5+1)); 后,z的值为(A)。

(A)30 (B)72 (C)48 (D)548.在C语言中,以下叙述错误的是(C)。

(A)函数被调用时,系统才为形参分配内存(B)实参和对应形参的数据类型必须一致(C)实参可以是变量、常量或表达式(D)形参可以是变量、常量或表达式9. 一个数据类型为void的函数中可以没有return语句,那么函数的被调用时(A)。

C语言程序设计(第三版)习试题(库)答案解析

C语言程序设计(第三版)习试题(库)答案解析

C语言程序设计(第三版)习试题(库)答案解析C语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。

请编程序。

#include main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(__”%f”__,&r);scanf(”%d”,__&h_);;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f”,Cl,Sa ,Sb,Va,Vb);}2、输入一个华氏温度,要求输出摄氏温度。

公式为c=5(F-32)/9输出要求有文字说明,取位2小数。

#includemain(){float F,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函数:??≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。

#includemain(){int x,y;printf("输入x :");scanf("%d",&x);if(x<1) { /* x<1 */y=x;printf("x=%3d, y=x=%d\n",x,y);} else if (____x<10_______){ /* 1≤x-10 */_____y=2*x-1_______;printf("x=%3d, y=2*x-1=%d\n",x,y);} else{ /* x ≥10 */y=3*x-11;printf("x=%3d, y=3*x-11=%d\n",x# include "stdio.h" main(){int x,y;scanf("%d",&x);{ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}# include "stdio.h" main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d\n",y);}# include "stdio.h" main(){scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;} # include "stdio.h" main() {int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=1 && x<10)y=2*x-1;elsey=3*x-11;printf("%d",y);},y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。

如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。

要事先准备好保存文件的目录,例d:\lx 目录。

在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。

设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。

大学_C语言程序设计试题含答案

大学_C语言程序设计试题含答案

C语言程序设计试题含答案C语言程序设计试题含答案(一)一、填空题1.以下程序输入3个整数值给a,b,c,变量b中的'值给a,变量c中的值给b,变量a中的值给c,交换后输出a,b,c的值。

#include stdio.hmain(){ int a,b,c,__①_d___;printf("enter a,b,c");scanf("%d%d%d",a,b,c);___d=a_②____;__a=b_③_____;____b=c④_____;_c=d__⑤_____;printf("%d,%d,%d",a,b,c);}2.求出200以内的整数中,最大的可以被17整除的数是哪个数。

#include stdio.h___①main()____{int i;for(_i=200___②____;___③i=0_______;i--){if(____i%17==0____④________) break;}printf("%d\n",__⑤_i____);}3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i20;i++) scanf("%d", __①_a[i]__ );for(i=0;__ ②_i20_;i++)? { if(a[i]0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。

请填空。

int fun( int n){ int m=0,i;for(i=__1_①___; i=n; _i++_②____){m=_m+i__③____;}return _④__m__;}main(){ printf("m=%d\n", __⑤__ fun(10)_); }5.以下程序将数组中的数据按逆序存放。

C语言实践编程题

C语言实践编程题

一、分支结构(7)1、 利用一元二次方程ax 2+bx+c=0的求根公式,计算方程的根。

2、 根据以下分段函数计算水费。

3、 编写程序,实现功能为输入一个形式如“操作数运算符操作数”的四则运算表达式(加、减、乘、除),输出运算结果。

例如:输入:3.1+4.8输出:7.94、 输入一行字符,统计其中英文字母、数字字符和其他字符的个数结果并输出。

5、 输入三角形的三条边a,b,c ,如果能构成一个三角形,输出面积area 和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle ”,试编写相应程序。

提示:在一个三角形中,任意两边之和大于第三边。

三角形面积计算公式,其中s=(a+b+c)/2。

6、 在屏幕上打印输出21世纪所有的闰年。

7、 编写程序,实现功能为统计某学校二年级学生的体重情况,体重60斤及以上为超重,体重40斤及以下为营养不良,体重在41-59斤之间的为正常,体重数据由键盘输入,输入-1结束,在屏幕上显示超重、正常和营养不良的学生人数。

二、累和算法(10)8、 编写程序,输入一批正整数(以零或负数为结束标志),求其中的偶数和并输出。

9、 编写程序按每行5个数的格式输出1至n 范围内能被7或17 整除的整数,并求出其和。

输入输出示例:(其中50是键盘输入)n=507 14 17 21 2834 35 42 49Sum=24710、程序的功能是按下面的公式计算并输出s的值,m的值由键盘输入,m应是一个奇数,如果输入的是一个偶数,取小于m的最大奇数。

11、编写程序,输入两个正整数a和n,求a+aa+aaa+……+aaaaaaa(n个a)之和。

例如:输入2和3,输出246(即计算和表达式2+22+222的值)。

12、使用格里高利公式求π的近似值并输出,要求精确到最后一项的绝对值小于10–4。

+13、从键盘输入整数n,根据公式=1!+2!+3!+4!+......+n!求解并输出结果。

C程序设计实验题目(下)[宝典]

C程序设计实验题目(下)[宝典]

实验七函数程序设计(二)练习1.用递归方法解决猴子吃桃子的问题(P129习题6.10)。

运行结果:1534练习2.编写一个程序,其中包含一个子函数,功能为删除字符串中指定的某个字符,并显示删除后的字符串。

子函数要求:形式为:vo id delete_string(cha r str[],char ch);运行结果示例:练习3.编写一个程序,其中包含一个子函数,功能为求出一个二维数组(从键盘读入)中每列的最小元素,并依次放入一个一维数组中。

例:子函数要求:形式为:vo id fun(int tt[M][N],int pp[N]);(其中,tt是一个M行N列的二维数组,pp为存放结果的一维数组。

)*练习4.编写一个程序,功能为将一个无序数组b(包含5个元素)中的每个元素插入另一个有序数组a (包含10个元素)中的适当位置,使插入后的数组a依然有序。

其中,包含3个子函数,各函数要求如下:●子函数1:功能为读入一包含n个元素的数组;形式为:voi d i np ut(int a[],i nt n);●子函数2:功能为将一个数值x插入到包含n个元素的有序数组中;●形式为:voi d ins ert(int a[],i nt n,int x);●子函数3:功能为输出一包含n个元素的数组;形式为:voi d o ut p ut(int a[],i nt n);实验八指针程序设计(一)练习1.用指针变量的处理方法编写一个程序,功能为读入一组(10个)数据后,逆向输出。

程序要求:练习2.用指针变量的处理方法编写一个程序,功能为将数组s(共10个元素,由随机数生成)中的数据位置两两对倒,并输出结果。

程序要求:程序中对数组的处理全部使用指针方式。

练习3.用指针变量的处理方法编写一个子函数,功能为从键盘读入一个已经排好序的数组(共10个数),再输入一个数,将此数按次序规律将它插入到数组中后输出结果。

函数要求:实参为指针变量,形参为数组名,且形式为:vo id insert(int x[ ], int m);其中:形参m为要插入的数据;函数无返回值。

c程序设计教学做一体化实践答案习题答案

c程序设计教学做一体化实践答案习题答案

附录A 实践参考答案第2章基本数据类型2.1.4 实践环节参考答案#include<stdio.h>int main(){int m1=1,m2=2,m3=3,m4=4,m5=5;int temp;printf("%d,%d,%d,%d,%d\n",m1,m2,m3,m4,m5);temp = m1;m1=m5;m5 = m4;m4 = m3;m3 = m2;m2 = temp;printf("%d,%d,%d,%d,%d\n",m1,m2,m3,m4,m5);temp = m5;m5=m1;m1 = m2;m2 = m3;m3 = m4;m4 = temp;printf("%d,%d,%d,%d,%d\n",m1,m2,m3,m4,m5);return 0;}2.2.4 实践环节参考答案#include <stdio.h>int main() {float elephantWeight; //elephantWeight(存储大象重量)float antOne,antTwo; //antOne,antTwo(存储两只蚂蚁的重量)float weightSum; //存放重量和elephantWeight=9876.0F;//将9876.0F赋值给elephantWeightantOne = 0.0000000001234123F;antTwo = 0.0000000004321123F;printf("两只蚂蚁的重量分别是:\n");printf("%0.20f和%0.20f\n",antOne,antTwo);weightSum = antOne+antTwo;//将antOne+antTwo赋值给weightSumprintf("两只蚂蚁的重量和:");printf("%0.20f\n",weightSum);printf("%e\n",weightSum);printf("大象的重量是:\n");printf("%0.20f\n",elephantWeight);weightSum =elephantWeight+antOne+antTwo;printf("大象与两只蚂蚁的重量和(蚂蚁的重量被忽略了):");printf("%0.20f\n",weightSum);printf("%e\n",weightSum);return 0;}2.3.4 实践环节参考答案实践1:#include <stdio.h>int main() {char warnning='\0';warnning = 110; //将整数110赋值到warnningprintf("%d报警字母%c\n",warnning,warnning);printf("%d报警声%c\n",warnning,'\a'); //输出转义字符\a一次warnning = 119; //将整数119赋值到warnningprintf("%d报警字母%c\n",warnning,warnning);//按整数和字符输出warnning printf("%d报警声%c%c\n",warnning,'\a','\a');//输出转义字符\a两次warnning = 120; //将整数120赋值到warnningprintf("%d报警字母%c\n",warnning,warnning);//按整数和字符输出warnning printf("%d报警声%c%c%c\n",warnning,'\a','\a','\a');//输出转义字符\a三次return 0;}实践2:#include<stdio.h>int main(){short number = 97;char c = '\0';c=number;printf("%c,%d\n",c,c);c = c-32;printf("%c,%d\n",c,c);return 0;}2.4.4 实践环节参考答案实践1:#include<stdio.h>int main(){char a,b,c;printf("连续输入3个字符,回车确认:");scanf("%c%c%c",&a,&b,&c);getchar(); //废弃回车putchar(a);putchar(b);putchar(c);putchar('\n');return 0;}2.5.4 实践环节参考答案#include <stdio.h>#define REBATE 0.6 //定义符号常量int main() {double tvPrice = 3786.89;double teaPrice = 78.67;double favourablePrice; //优惠后的价格printf("电视机的原价%0.3f\n",tvPrice);favourablePrice = REBATE*tvPrice; //使用符号常量printf("电视机优惠后的价格%0.3f\n",favourablePrice);printf("茶叶的原价%0.3f\n",teaPrice);favourablePrice = REBATE*teaPrice; //使用符号常量printf("茶叶优惠后的价格%0.3f\n",favourablePrice);getchar();return 0;}第3章运算符与表达式3.1.4 实践环节参考答案#include<stdio.h>int main(){int result = 0;result = 1/2+3+6*4/6;printf("1/2+3+6*4/6 = %d\n",result);result = 3+6*(4/6);printf("3+6*(4/6) = %d\n",result);result = 10%3*9;printf("10%%3*9 = %d\n",result); //%%输出一个% result =12+10%(3*9);printf("12+10%%(3*9) = %d\n",result);return 0;}3.2.4 实践环节参考答案#include<stdio.h>int main(){int i = 2,y;y = i++ * i;printf("i=%d,y=%d\n",i,y); //输出结果是i=3,y=4return 0;}3.3.4 实践环节参考答案实践1:#include <stdio.h>int main() {int above1,above2,center,bottom1,bottom2;int pass = 0;printf("输入开关above1的状态:");scanf("%d",&above1);printf("输入开关above2的状态:");scanf("%d",&above2);printf("输入开关center的状态:");scanf("%d",&center);printf("输入开关bottom1的状态:");scanf("%d",&bottom1);printf("输入开关bottom2的状态:");scanf("%d",&bottom2);pass = (above1!=0)&&(above2!=0);printf("bove1和above2开: %d \n",pass);pass = (above1!=0||bottom1!=0)&&(center!=0)&&(above2!=0||bottom2!=0);printf("above1或bootom1开,center开,above2或bootom2开:%d\n",pass);pass = (bottom1!=0)&&(bottom2!=0);printf("bottom1和bottom2为开:%d\n",pass);return 0;}实践2:#include <stdio.h>int main() {int x,y,z;printf("输入x,y,z的值(逗号分隔,回车确认):\n");scanf("%d,%d,%d",&x,&y,&z);printf("%d,%d,%d,%d\n",x+y&&z-y,x<y<z||x>y>z,x-x&&y-y||z-z,(x-x)&&y-y);return 0;}3.4.4 实践环节参考答案#include <stdio.h>#define TrainCharge 12#define CarCharge 22#define PlaneCharge 132int main() {double weight,payWeight,charge;printf("输入行李重量:");scanf("%lf",&weight);printf("行李重量:%f公斤(kg)\n",weight);payWeight =(int)weight;printf("用火车托运需要计费的重量:%f(kg)\n",payWeight);charge = payWeight*TrainCharge;printf("用火车托运(%d元/kg),费用:%f元\n",TrainCharge,charge);payWeight =(int)(weight+0.5);printf("用汽车托运需要计费的重量:%f(kg)\n",payWeight);charge = payWeight*CarCharge;printf("用汽车托运(%d元/kg),费用:%f元\n",CarCharge,charge);payWeight =(int)(weight*10+0.5);payWeight = payWeight/10;printf("用飞机托运需要计费的重量:%f(kg)\n",payWeight);charge = payWeight*PlaneCharge;printf("用汽车托运(%d元/kg),费用:%f元\n",PlaneCharge,charge);return 0;}3.5.4 实践环节参考答案#include <stdio.h>int main(){short a =63;short MASK = 5;a=a&MASK;printf("%d\n",a);a=3557;a=a&MASK;printf("%d\n",a);}第4章分支语句4.1.4 实践环节参考答案#include <stdio.h>#define limitMaxSpeed 120int main(){double speed;int lostMoney = 0,lostScore = 0;printf("输入速度:");scanf("%lf",&speed);if(speed >= limitMaxSpeed) {lostMoney = 200;if(speed - limitMaxSpeed>=limitMaxSpeed/2.0)lostScore = 6;if(speed - limitMaxSpeed<limitMaxSpeed/2.0)lostScore = 3;}printf("速度:%0.2f,罚款:%3d,扣分:%3d\n",speed,lostMoney,lostScore);return 0;}4.2.4 实践环节参考答案#include <stdio.h>#include <math.h>int main() {double a,b,c;double root1,root2;double disc;printf("输入系数a,b,c(逗号分隔):");scanf("%lf,%lf,%lf",&a,&b,&c);disc = b*b-4*a*c;if(a==0) {if(b==0) {printf("不是方程\n");}else {printf("是一元一次方程,只有一个根:%f\n",-c/b);}}else {if(disc>=0) {root1 = (-b+sqrt(disc))/2*a;root2 = (-b-sqrt(disc))/2*a;printf("是一元二次方程,有两个实根:%f,%f\n",root1,root2);}else {printf("是一元二次方程,没有实根\n");}}return 0;}4.3.4 实践环节参考答案实践1:#include <stdio.h>int main(){double x,y;int isRight = 1;printf("输入变量x的值:");scanf("%lf",&x);if(x <= -10){y = x*x - 1;}else if(x>=-10 && x<=-3){y = x + 109;}else if(x>-3 && x<=0){y = 3*x+34;}else {isRight = 0;printf("输入的数据%f是不允许的值\n",x);}if(isRight){printf("%0.8f\n",y);printf("main函数中一共有5条语句,最后一条语句是return语句\n");}return 0;}实践2:#include <stdio.h>#define POINT1 100#define POINT2 200#define POINT3 500int main(){float amountMoney = 0;float charge = 0;printf("输入商品的总额:");scanf("%f",&amountMoney);if(amountMoney<POINT1) {charge = amountMoney;}else if(amountMoney<POINT2&&amountMoney>=POINT1){charge = POINT1+(amountMoney-POINT1)*0.9f;}else if(amountMoney<POINT3&&amountMoney>=POINT2){charge = POINT1+(POINT2-POINT1)*0.9f+(amountMoney-POINT2)*0.8f;}else if(amountMoney>=POINT3){charge = POINT1+(POINT2-POINT1)*0.9f+(POINT3-POINT2)*0.8f+(amountMoney-POINT3)*0.7f;}printf("顾客支付金额:%-20.2f\n",charge);printf("顾客节省金额:%-20.2f\n",amountMoney-charge);return 0;}4.4.4 实践环节参考答案#include <stdio.h>int main() {int number;printf("输入号码:");scanf("%d",&number);switch(number) {case 9 :case 131 :case 12 : printf("%d是三等奖\n",number);break;case 209 :case 596 :case 27 : printf("%d是二等奖\n",number);break;case 875 :case 316 :case 59 : printf("%d是一等奖\n",number);break;default: printf("%d未中奖\n",number);}return 0;}第5章循环语句5.1.4 实践环节参考答案实践1:#include <stdio.h>int main(){int i = 1,multiply=1,item=1;while(i <= 5) {multiply = multiply*item;i++;item = item+2; //计算出下一次需要累乘的item}printf("1×3×5…×9是%d\n",multiply);}实践2:#include <stdio.h>#define N 5int main(){float a = 2,b = 1; //累加项中的关键数字float t; //一个用于交换其他变量的备用变量int i =1 ; //控制循环次数int fuhao =1; //控制正负的变量float item = 0; //需要累加的值float sum = 0; //用于累加的变量item = a/b ; //第一次需要累加的值是a/bwhile(i <= N) {sum = sum + fuhao*item; //本次循环向sum累加itemi++; //改变i的值,以便改变循环条件t = a;a = a+b; //计算出下一次item中的ab = t; //计算出下一次item中的bfuhao = -fuhao; //改变符号item = a/b; //计算出下一次需要累加的item }printf("\n当前i的值是%d,sum的值是%f\n",i,sum);return 0;}实践3:#include <stdio.h>int main(){unsigned short number;unsigned short remainder;unsigned short sum = 0,temp=0;printf("输入一个正整数:");scanf("%d",&number);temp=number;while(number!=0) {remainder = number%10; //求出number中个位上的数字sum = sum + remainder; //将sum + remainder赋值给sumnumber = number/10; //将number/10赋值给number }printf("%u上各位数字之和是:%u\n",temp,sum);return 0;}实践4:#include <stdio.h>#define N 8int main(){int i =1 ;int item = 2;long multiply = 1;while(i <= N) {multiply = multiply*item;i++;}printf("%d的%d幂是:%ld\n",item,N,multiply);return 0;}5.3.4 实践环节参考答案#include <stdio.h>#include <time.h>#include <stdlib.h>int main(){int randomNumber; //随机数int guess; //用户的猜测int count = 0; //记录用户的猜测次数srand(time(NULL)); //用当前时间做随机种子printf("给你一个1至100之间的数,请猜测:\n");randomNumber = rand()%100+1;do{scanf("%d",&guess);count++;if(guess > randomNumber){printf("第%d次猜测,猜大了,请再猜:\n",count);}else if(guess < randomNumber){printf("第%d次猜测,猜小了,请再猜:\n",count);}}while(guess != randomNumber); //不要忘记这里的分号printf("您猜对了,共猜了%d次,这个数就是:%d\n",count,randomNumber);return 0;}5.4.4 实践环节参考答案实践1:#include <stdio.h>int main(){double sum = 0;double aver =1 ;double x = 0;double max,min; //存放输入的最大、最小数int count = 0;int m = 1;printf("输入数据,回车确认(输入no结束输入过程):\n");m = scanf("%lf",&x);max = min =x;while(m!=0){count++;sum = sum+x;printf("输入下一个数据,回车确认(输入no结束输入过程):\n");m = scanf("%lf",&x);if(x>max)max=x;if(x<min)min=x;}aver = sum/count;printf("所输入数的平均数%f\n",aver);if(count>=3) {printf("去掉一个最大数%f,一个最小数%f\n",max,min);aver = (sum-max-min)/(count-2);printf("平均数:%f\n",aver);}return 0;}实践2:#include <stdio.h>int main(){int i ; //存放整数的变量int a = 0,b = 0,c = 0; //存放i的个、十、百位上的数字int isNarcissus = 0;for(i=100;i<=999;i++) {a = i%10; //个位b = i/10%10; //十位c= i/100; //百位isNarcissus = (i==a*a*a+b*b*b+c*c*c);if(isNarcissus){printf("%d\n",i);}}return 0;}实践3:#include <stdio.h>int main(){int sum,i,j;for(i=1;i<=1000;i++){for(j=1,sum=0;j<=i/2;j++){ //该循环语句负责计算i的因子之和if(i%j==0){sum=sum+j;}}if(sum==i){ //判断i的因子之和是否等于iprintf("%5d是一个完数\n",i);}}return 0;}实践4:#include <stdio.h>#define N 20int main(){double result;double sum,item;double a ;int i;for(i=1,a=1,sum=0;i<=N;i++){a = a*i;item = 1/a;sum = sum + item;}result = sum+1;printf("%f\n",result);return 0;}5.5.4 实践环节参考答案#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){long now;char c1,c2,c3,c4,c5,c6;char s1,s2,s3,s4,s5,s6;unsigned short score = 0,i;char ok ='y',temp;srand(time(NULL)); //用当前时间做随机种子while(ok=='y'||ok=='Y') {ok = 'n';c1 = rand()%26+'a';c2 = rand()%26+'a';c3 = rand()%26+'a';c4 = rand()%26+'a';c5 = rand()%26+'a';c6 = rand()%26+'a';printf("%c%c%c%c%c%c",c1,c2,c3,c4,c5,c6);now = clock();for( ;clock()-now<=5000;) {}printf("\r"); // 将输出光标移动到本行开头(不回行)for(i=1;i<=6;i++) //输出6个*,以便擦除曾显示的字符串printf("输入刚才显示的字符序列(回车确认):\n");scanf("%c%c%c%c%c%c",&s1,&s2,&s3,&s4,&s5,&s6);temp =getchar(); //消耗调用户确认输入时所输入的回车if(temp!='\n') {printf("输入非法,程序退出!");exit(0);}if(c1==s1&&c2==s2&&c3==s3&&c4==s4&&c5==s5&&c6==s6) { score++;printf("恭喜,记忆力不错!\n");}else {printf("遗憾,记得不准确\n");}printf("目前得分%u:\n",score);printf("继续测试吗?输入y或n(回车确认):");ok = getchar();getchar();}}5.6.4 实践环节参考答案#include <stdio.h>int main(){char c1,c2,c3,c4,c5;int count =0,i=1;do {printf("输入密码:");c1=getch();printf("*");c2=getch();printf("*");c3=getch();printf("*");c4=getch();printf("*");c5=getch();printf("*");getchar();count++;break;}while(c1!='a'||c2!='b'||c3!='c'||c4!='d'||c5!='e');if(count<3)printf("输入了正确的密码");elseprintf("输入了错误的密码");return 0;}第6章函数的结构与调用6.1.4 实践环节参考答案实践1:double getRectArea(double,double); //函数原型double getRectArea(double a,double b) { //函数定义double area =a*b;return area;}6.2.4 实践环节参考答案buy.c#include <stdio.h>double expensiveComputer(); //函数原型int cheapnessComputer(); //函数原型int main() {double price;printf("在商厦购物:\n");price = expensiveComputer(); //调用expensiveComputer函数,并将返回值赋值给price printf("需要支付:%lf元\n",price);printf("在亲民小店购物:\n");price = cheapnessComputer();//调用cheapnessComputer函数,并将返回值赋值给pricegetchar();printf("需要支付:%lf元\n",price);getchar();return 0;}largeShop.cdouble expensiveComputer(); //函数原型double expensiveComputer() { //函数定义int m = 1;double price,sum =0;printf("这里是商厦,请依次输入商品的价格(逗号分隔).\n");printf("输入任意字母结束输入过程:\n");m=scanf("%lf,",&price);while(m!=0) {sum = sum+ price;m=scanf("%lf,",&price);}getchar();return sum;}smallShop.cint cheapnessComputer(); //函数原型int cheapnessComputer() { //函数定义int m = 1;double price,sum =0;printf("这里是亲民小店,请依次输入商品的价格(逗号分隔).\n");printf("输入任意字母结束输入过程:\n");m=scanf("%lf,",&price);while(m!=0) {sum = sum+ price;m=scanf("%lf,",&price);}getchar();return sum;}6.3.4 实践环节参考答案rational.c#include<stdio.h>double add(int,int,int,int); //要调用函数原型double muti (int b,int a,int n,int m); //要调用函数原型int main() {double result;result=add(1,3,1,6);printf("\n结果用小数表示是:%lf\n",result);result=add(2,3,-1,7);printf("\n结果用小数表示是:%lf\n",result);result=muti(2,3,-1,7);printf("\n结果用小数表示是:%lf\n",result);getchar();}add.c#include<stdio.h>int gongY ue(int,int); //要调用的函数原型double add(int,int,int,int); // 分数加法的函数原型double add(int fenzi1,int fenmu1,int fenzi2,int fenmu2) { //分数加法的函数定义int fenzi;int fenmu;int m,n;n = fenzi1*fenmu2+fenmu1*fenzi2;m = fenmu1*fenmu2;if(m<0&&n<0) {m = -m;n = -n;}fenzi = n/gongY ue(m,n); //约分后的分子fenmu = m/gongY ue(m,n); //约分后的分母printf("(%d/%d)+(%d/%d)=%d/%d",fenzi1,fenmu1,fenzi2,fenmu2,fenzi,fenmu);return (double)fenzi/(double)fenmu;}muti.c#include<stdio.h>int gongY ue(int,int); //要调用的函数原型double muti (int b,int a,int n,int m);//分数乘法的函数原型double muti (int b,int a,int n,int m) { //分数乘法的函数定义int x;int y;int p,q;x = b*n; //计算出分子y = a*m; //计算出分母if(x<0&&y<0) {x = -x;y = -y;}q=x/gongY ue(x,y); //约分后的分子p=y/gongY ue(x,y); //约分后的分母printf("(%d/%d)×(%d/%d)=%d/%d",b,a,n,m,q,p);return (double)q/(double)p;}gongyue.c#include<stdio.h>int gongY ue(int,int);int gongY ue(int m,int n) {int r;int t;if(m<0) m=-m;if(n<0) n=-n;if(m<n){t=m;m=n;n=t;}r = m%n;while(r!=0){ //使用辗转相除法计算最大公约数m = n;n = r;r = m%n;}return n;}6.4.4 实践环节参考答案main.c#include<stdio.h>long f(int);long jiecheng(int);int main() {long r=0;r=f(8);printf("%ld\n",r);getchar();return 0;}long f(int n) {long sum=0;int i=1;for(i=1;i<=n;i++) {sum=sum+jiecheng(i);}return sum;}long jiecheng(int n){long muti=1,i=1;for(i=1;i<=n;i++) {muti=muti*i;}return muti;}6.5.4 实践环节参考答案main.c#include<stdio.h>void primnumber(int);void wanshu(int);int main() {primnumber(20);wanshu(1000);getchar();return 0;}primnumber.c#include <stdio.h>void primnumber(int);void primnumber(int n){int i,j;int isPrimNumber =1; //记录i是否是素数的变量int count =0; //存放数素的个数for(i=1;i<=n;i++){for(j=2,isPrimNumber=1;j<=i/2;j++){if(i%j==0){ //判断j是i的因子isPrimNumber = 0; //一旦找到因子,就记录i不是素数break; //结束内循环(没必要找到多个因子)}}if(isPrimNumber){count++;printf("%4d",i);if(count%6==0) //打印6个素数之后输出一个回行printf("\n");}}}wanshu.c#include <stdio.h>void wanshu(int n){int sum,i,j;for(i=1;i<=n;i++){for(j=1,sum=0;j<=i/2;j++){ //该循环语句负责计算i的因子之和if(i%j==0){sum=sum+j;}}if(sum==i){ //判断i的因子之和是否等于iprintf("%5d是一个完数\n",i);}}}6.6.4 实践环节参考答案digui.c#include <stdio.h>#include<time.h>long shulie(int); //函数原型int main(){int n;long item;n=100;item=shulie(100);printf("第%d项是:%ld\n",n,item);return 0;}long shulie(int n){ //函数定义long result;if(n==1)result = 1;else if(n >= 2)result = shulie(n-1) +3;return result;}6.7.4 实践环节参考答案Village.c#include <stdio.h>void kongHome(int); //函数原型void mengHome(int); //函数原型int tank = 200 ; //全局变量int main(){int amount = 20;printf("储水池有%d升水\n",tank);tank = tank - amount; //村委会取水20printf("村委会取水%d升水\n",amount);printf("储水池现在有%d升水\n",tank);kongHome(50); //孔家取水50升printf("储水池现在有%d升水\n",tank);mengHome(35); //孟家取水35升printf("储水池现在有%d升水\n",tank); }otherVillage.c#include <stdio.h>extern int tank ; //引用全局变量tank void kongHome(int amount){tank = tank - amount;printf("孔家取水%d升水\n",amount);}void mengHome(int amount){tank = tank - amount;printf("孟家取水%d升水\n",amount);}6.8.4 实践环节参考答案#include <stdio.h>long add(int n); //函数原型int main(){long i=1,result;for(i=1;i<=100;i++){result=add(i);printf("%ld\n",result);}}long add(int n) {static int sum=0; //声明static局部变量sum,初始值是0 sum+=n;return sum;}6.9.4 实践环节参考答案#include<stdio.h>#include<stdlib.h>int main() {printf("列出当前目录下的子目录和文件:\n");system("dir D:\\1000");printf("打开记事本:\n");system("notepad.exe");printf("其他软件都结束了,才能输出我:\n");getchar();return 0;}第7章数组7.1.4 实践环节参考答案#include <stdio.h>int main(){int i;int a[] = {'*','*','*','*',1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30 } ;int size =sizeof(a)/sizeof(int);printf("日一二三四五六\n");for(i=0;i<size;i++){if(i!=0&&i%7==0)printf("\n");if(i<4)printf("%-5c",a[i]);elseprintf("%-5d",a[i]);}return 0;}7.2.4 实践环节参考答案#include <stdio.h>void rotateLeft(int [],int);//负责旋转数组的函数原型int main() {int i,length;int a[11] = {1,2,3,4,5,6,7,8,9,10,11};int leftPeople =0; //从圈中退出的人数int count = 1; //数到第3个人,该人退出length = sizeof(a)/sizeof(int);while(leftPeople < 10){while(count<=2){rotateLeft(a, length);if(a[0]!=-1)count++;}leftPeople++;printf("第%d个退出的人的号码是%d\n",leftPeople,a[0]);a[0] = -1; //号码是-1表示此人已退出圈子count = 0; //第1次旋转count是1,其余旋转时count应该设置为0 }for(i=0;i<length;i++){if(a[i]!=-1)printf("最后剩下的人的号码是%d\n",a[i]);}return 0;}void rotateLeft(int b[],int size){int i=1;int t = b[0];while(i<size){b[i-1] = b[i];i++;}b[size-1] = t;}7.3.4 实践环节参考答案实践2:#include <stdio.h>#include <stdlib.h>void sort(int [],int); //负责排序的函数原型int main(){int start,end,middle,number;int a[] = {12,45,67,89,123,-45,67};int N = sizeof(a)/sizeof(int); //计算出数组的长度,见任务总结int count=0;int ok =0 ;printf("输入一个整数:");ok = scanf("%d",&number);if(ok==0){printf("非法输入,退出程序");exit(0);}sort(a,N); //排序数组while(ok==1){start=0;end=N;middle=(start+end)/2;count=0;while(number!=a[middle]){if(number>a[middle])start=middle;else if(number<a[middle])end=middle;middle=(start+end)/2;count++;if(count>N/2)break;}if(count>N/2)printf("%d不在数组中.\n",number);elseprintf("%d在数组中.\n",number);printf("\n再输入整数(输入字母结束程序):");ok = scanf("%d",&number);if(ok==0){printf("非法输入,退出程序");exit(0);}}return 0;}void sort(int a[],int N){int m,i,t;for(m = 0; m<N-1;m++) {for(i = 0;i < N-1-m;i++){if(a[i]>a[i+1]){t = a[i+1];a[i+1] = a[i];a[i] = t;}}}}7.4.4 实践环节参考答案#include<stdio.h>void change(int [],int [],int);int main() {int i,j,total=0;int a[5][4] = {{89,80,70,76},{78,75,80,80},{90,95,85,95},{95,89,60,65},{75,77,88,70}};for(i=0;i<5;i++) {for(j=i+1;j<5;j++){if(a[j][3]>a[i][3])change(a[j],a[i],4);}}printf("%6s%6s%6s%6s\n","英","物","语","数");for(i=0;i<4;i++) {for(j=0;j<4;j++) {printf("%6d",a[i][j]);}printf("\n");}return 0;}void change(int a[],int b[],int m){int i,temp;for(i=0;i<m;i++){temp = a[i];a[i] = b[i];b[i] = temp;}}第8章指针8.1.4 实践环节参考答案#include<stdio.h>int main(){char cOne ='A', cTwo='G',temp;char *p,*q;printf("%c,%c\n",cOne,cTwo);p = &cOne;q = &temp;*q = *p;q = &cTwo;*p = *q;p = &temp;*q = *p;printf("%c,%c\n",cOne,cTwo);return 0;}8.2.4 实践环节参考答案#include<stdio.h>int main(){char c='A';int i=1;char * p;p =&c;printf("以1个字节为单位依次显示地址:\n");while(i<=5) {printf("地址:%d",p);printf(",将该地址连续1个字节的内存按char型数据是:%c\n",*p);p = p+1;i++;}return 0;}8.3.4 实践环节参考答案#include<stdio.h>#include<malloc.h>int write(int);int main(){int result;result = write(3);printf("求和结果:%d\n",result);}int write(int m){int *p,*save,i,sum;p = malloc(4*m);save = p;printf("输入要求和的%d个整数(空格或回车分隔):\n",m);for(i=1;i<=m;i++) {scanf("%d",p++);}p =save;for(i=1,sum=0;i<=m;i++) {sum=sum+*p++;}return sum;}8.5.4 实践环节参考答案#include<stdio.h>int getSum(int m,double *p);int main() {int sum =0;double save;sum = getSum(100,&save);printf("1至100的和以及平均值:%d,%f\n",sum,save);}int getSum(int m,double *p) {int sum =0,i=1;while(i<=m) {sum = sum +i;i++;}*p = (double)sum/m;return sum;}第9章指针与数组9.1.4 实践环节参考答案#include <stdio.h>#include<limits.h>int main() {unsigned int number,n;unsigned int *p,*q;unsigned int a[10] ={0};unsigned int r,isHuiwen=1,i;printf("输入一个正整数(1至%u):\n",UINT_MAX);scanf("%u",&number);n = number;q = &a[9];while(n!=0){ //该循环将整数的各个位上的数字存放到数组的元素中r = n%10;*q =r;q--;n = n/10;}for(i=0;i<9;i++){ //让p指向数组的第一个值大于0的元素if(a[i]!=0){p = &a[i];break;}}q = &a[9]; //q指向末元素while(p<q){isHuiwen=isHuiwen&&(*p==*q);p++;q--;}if(isHuiwen)printf("%u是回文数",number);elseprintf("%u不是回文数",number);return 0;}9.2.4 实践环节参考答案#include<stdio.h>#include<malloc.h>int main(){short amount,i=1,acount=0,sum=0;float aver=0;short *p,*save;printf("输入班级人数:");scanf("%d",&amount);p = malloc(2*amount); //将p新指向malloc所分的2*amount个字节的内存save = p;printf("输入%d学生的成绩(空格分隔):\n",amount);for(i=0;i<amount;i++) {scanf("%d",p++);}p = save;for(i=0;i<amount;i++) {sum =sum+p[i];if(p[i]<60)acount++;}aver =(float)sum/amount;printf("平均成绩%0.2f:\n",aver);printf("不及格人数%d:\n",acount);}9.3.4 实践环节参考答案#include <stdio.h>#include<malloc.h>int sum(int a[],int n);//返回数组元素值之和的函数原型int main(){int amount,i,peopleNumber;int * p,*firstCarriage;printf("输入车厢数目(回车确认):\n");scanf("%d",&amount);p = malloc(amount*4);firstCarriage = p;printf("依次输入每节车厢的人数(逗号分隔):\n");for(i=0;i<amount;i++) {scanf("%d,", p);p++;}peopleNumber=sum(firstCarriage,amount);printf("列车上的旅客数:%d\n",peopleNumber);}int sum(int a[],int n) {int peopleNumber = 0,i;for(i=0;i<n;i++)peopleNumber = peopleNumber+a[i];return peopleNumber;}9.4.4 实践环节参考答案#include <stdio.h>int main(){int a[5][4] = {{10,11,51,20},{3,8,7,10},{19,2,1,3},{23,9,78,5},{1,2,1,1}};int *p[5];int i,j;for(i=0;i<=4;i++)p[i] = &a[i][0]; //int型指针p[i]指向第i行的首元素for(i=0;i<5;i++) { //排序数组pfor(j=i+1;j<5;j++){if(a[j][3]>a[i][3]) {int * t;t=p[i];p[i]=p[j];p[j]=t;}}}printf("%6s%6s%6s%6s\n","一","二","三","四");for(i=0;i<5;i++){for(j=0;j<4;j++){printf("%6d",p[i][j]); //注意p[i]是指向第i行的int型指针。

《C语言程序设计课程设计》题目

《C语言程序设计课程设计》题目

1 一元稀疏多项式的运算问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。

实现要求:⑴输入并建立多项式;⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。

序列按指数降序排列;⑶多项式A和B相加,建立多项式A+B,输出相加的多项式;⑷多项式A和B相减,建立多项式A-B,输出相减的多项式;⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式;⑹设计一个菜单,至少具有上述操作要求的基本功能。

测试数据:(1) (2x+5x8-3.1x11)+(7-5x8+11x9)(2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)2 成绩排序假设某年级有4个班,每班有45名同学。

本学期有5门课程考试,每门课程成绩是百分制。

假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求:⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩;⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中;⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑷ 用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑸ 对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表;⑹ 设计一个菜单,至少具有上述操作要求的基本功能。

3 栈及其操作问题描述:栈(Stack):是限制在表的一端进行插入和删除操作的线性表。

C程序设计五百例--学会用c语言解决生活中的问题

C程序设计五百例--学会用c语言解决生活中的问题

C程序设计五百例--学会⽤c语⾔解决⽣活中的问题学会⽤c语⾔解决⽣活中的问题【程序1】题⽬:有1、2、3、4个数字,能组成多少个互不相同且⽆重复数字的三位数?都是多少?1.程序分析:可填在百位、⼗位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满⾜条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题⽬:企业发放的奖⾦根据利润提成。

利润(I)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可可提成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润I,求应发放奖⾦总数?1.程序分析:请利⽤数轴来分界,定位。

注意定义时需把奖⾦定义成长整型。

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题⽬:⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开⽅,再将该数加上268后再开⽅,如果开⽅后的结果满⾜如下条件,即是结果。

C语言程序设计题目及解答-01

C语言程序设计题目及解答-01

一、判断题 (20分)1. 计算机是信息处理的工具,任何信息必须被转换成二进制形式数据后才能由计算机进行处理、存储和传输。

2分2. C语言采用解释方式将源程序转换为二进制的目标代码。

2分3. 在C源程序中,/*与*/之间的注释信息也被编译,但对程序运行运果不发生影响。

2分4. 在C语言中,字母的大小写不被区分。

2分5. 对C语言中用到的任何一个变量都要规定其类型。

2分6. 字符型数据和整数之间是不可以通用的。

2分7. 转义字符是一种常量。

2分8. C程序中的一个变量可以被定义为两个或多个不同的类型。

2分9. 字符常量是用单撇号括来的一个字符,这个字符可以是任意的。

2分10. C语言中的标识符以字母或下划线开头,可跟任何字符。

2分二、选择题 (60分)1.目前,在微型计算机中普遍采用的符号编码是() [A] 2分A. ASCII码B. EBCDIC码C. GB2312-80 码D. UNICODE码2.下列一组数据表示方式中的最大数是() [D] 2分A. 1234OB. 1FFHC. 1010001BD. 789D3.ASCII码采用的是()位编码方案,在计算机中的表示方式为()。

[C] 2分A. 8,最高位为“0”的2BB. 8,最高位为“1”的2BC. 7,最高位为“0”的1BD. 7,最高位为“1”的1B4.下列字符中,其 ASCII码值最大的是()。

[B] 2分A. AB. aC. 0D. 95.若在一个非零无符号二进制整数右边加两个零形成一个新的数,则新数的值是原数值的()倍。

[A] 2分A. 4B. 2C. 1/4D. 1/26.计算机中,一个浮点数由两部分组成,它们是()。

[C] 2分A. 阶码和基数B. 基数和尾数C. 阶码和尾数D. 整数和小数7.汉字编码与ASCII码在计算机内部的区分方法是()。

[C] 2分A. 两个字节的高八位都为“0”为两个ASCII码B. 两个字节的高八位都为“1”为两个ASCII码C. 两个字节的高八位都为“1”为一个汉字编码D. 两个字节的高八位都为“0”为一个汉字编码8.常用字符的ASCII码值从小到大的排列顺序为()。

c语言程序设计题目及答案

c语言程序设计题目及答案

一、程序设计共113题第1题题号:319#include ""void wwjt();int fun(int m){int i,k=1;if(m<=1) k=0;for(i=2;i<m;i++)if(m%i==0) k=0;return k;}第2题题号:351-----------功能:请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp 所指一维数组中。

二维数组中的数已在主函数中赋予。

#include<>#include<>#define M 3#define N 4void wwjt();void fun(int tt[M][N],intpp[N]){int i,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]>pp[j])pp[j]=tt[i][j];}第3题题号:375功能:从键盘上输入任意实数,求出其所对应的函数值。

z=e的x次幂(x>10)z=log(x+3) (x>-3)z=sin(x)/((cos(x)+4)#include <>#include<>void wwjt();double y(float x){double z;if(x>10) z=exp(x);else if(x>-3) z=log(x+3);else z=sin(x)/(cos(x)+4);return(z);}第4题题号:334功能:求给定正整数n以内的素数之积。

(n<28)#include <>#include""void wwjt();long fun(int n){long i,k;long s=1;for(i=2;i<=n;i++){for(k=2;k<i;k++)if(i%k==0)break; if(k==i)s=s*i;}return s;}第5题题号:333功能:计算并输出给定整数的所有因子之积(包括自身)。

C语言程序设计试题14及答案

C语言程序设计试题14及答案

C语言程序设计试题14及答案一、选择题(1—14每题1分,15-18每题1.5分,共20分)1.可选作用户标识符的一组标识符是()A voidB c5_b8C ForD 3aDefine _53 -ab DOWORD IF Case int2.在C语言中,非法的八进制是:()A.018B.016C.017D.02573.在TC中,基本int a[4]类型变量所占的字节数是()A.1B.2C.4D.84.设x,y,z,k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()A.4B.16C.32D.525.设int型变量a为5,使b不为2的表达式是()A.b=a/2B.b=6-(-a)C.b=a%2D.b=a>3?2:16.一个C程序的执行是从()A.main()函数开始,直到main()函数结束。

B.第一个函数开始,最后一个函数结束。

C.第一个语句开始,最后一个语句结束。

D.main()函数开始,直到最后一个函数。

7.C语言中用于结构化程序设计的三种基本结构是()A.if、switch、breakB.if while forC.while do- while forD.顺序结构、选择结构、循环结构8.以下叙述中不正确的是()A.在不同的函数中可以使用相同名字的变量。

B.函数中的形式参数是局部变量。

C.在一个函数内的符合语句中定义变量在本函数范围内有效。

D.在一个函数内定义的变量只在本函数范围内有效。

9.若k为int 类型,且k的值为3,执行语句k+=k-=k*k后,k的值为()A.-3B.6C.-9D.-1210.有以下程序main(){int x=3,y=3,z=3;printf(“%d %d\n”(++x,y++),++z);} 输出结果()//不同的系统不同的值 ~A.3 3B.3 4C.4 2D.4 311.若有定义和语句:int a=21,b=021; printf(“%x,%d \n”,a,b);输出结果()A.17,15B.16,18C.17,19D.15,1712.已有定义语句:int x=3,y=4,z=5;则值为0的表达式是()A.x>y++B.x<=++yC.x!=y+z>y-zD.y%z>=y-z13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是()A.a>=10 or a<=0B.a>=10||a<=0C.a>=10&&a<=0D.a>=10|a<=014.n为整型常量,且n=2;while(n--);printf(“%d”,n);执行后的结果是:()A.2B.1C.-1D.015.若有以下定义和赋值double *q,a=5.5; int *p,i=1; double *q,a=5.5;int *p,i=1; p=&i q=&a以下对赋值语句叙述错误的是( )。

C语言程序设计试题

C语言程序设计试题

一、选择题1.int a=9, 则表达式 a%2 的值是。

A.4.5 B.4 C.3 D.12.下述对C语言字符数组的描述中错误的是:A.字符数组可以存放字符串B.字符数组中的字符串可以整体输入、输出C.不可以用关系运算符对字符数组中的字符串进行比较D.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值3.以下for 循环for(x=0;x<=8;x++)A.无限循环 B.循环7次C.循环8次 D.循环9次4.以下叙述中正确的是:A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套5.设int x=1,sum=0;请在以下程序片段中选出能够实现从1累加到100功能的一项:A.while(x<=100) B.for(;x<100;x++)sum=sum+x ; sum=sum+x;C.do{sum+=x; x++} D.for(;x<=100;x++)while(x<=100); x=x+sum;6.有以下程序main(){int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for (i=0;i<3;i++){printf ("%d ",m[k][i]);}}执行后输出结果是A.2 5 8 B.4 5 6 C.3 6 9 D.7 8 97.若t为double类型,表达式t=1, t+5, t++的值是A.1.0 B.6.0 C.6 D.7.08.为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系A.缩排位置相同的if B.在其之前未配对的ifC.在其之前未配对的最近的if D.同一行上的if9.若有定义:int x, *pb; 则正确的赋值表达式是:A.pb=&x B.pb=x C.*pb=&x D.*pb=*x10.以下不正确的叙述是A.预处理命令行都必须以“#”号开始B.在程序中凡是以“#”号开始的语句行都是预处理命令行C.C程序在执行过程中对预处理命令行进行处理D.#define ABCD是正确的宏定义11.若有以下程序fun(int a, int b, int c){ c=a*b; }main(){ int c;fun(2,3,c);printf(“%d\n”,c);}执行后输出的结果是A.0 B.出错 C.6 D.无定值12.有以下程序void fun(int *x){ printf(“%d\n”,++*x); }main(){ int a=25;fun(&a); }A.23 B.24 C.25 D.2613.下列表达式中,值等于1的是A.!b || b B.b>b C.a!=a D.3%414.以下程序的输出结果是(strcpy(a,b)函数作用是将b的内容复制到a上;strcat(a,b)函数作用是将b连接到a后面)#include<ctype.h>main(){ char str[50]=”xyz”, p1[20]=”abcd”, *p2;p2=”ABCD”;strcpy(str+2, strcat(p1+2, p2+1));printf(“%s\n”,str); }A.xyabcAB B.abcABzC.Ababcz D.xycdBCD15.以下不合法的八进制数是:A.0 B.028 C.077 D.0116.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型17.以下合法的数组定义是A.int a()={‘A’,‘B’,‘C’}; B.int a[5]={0,1,2,3,4,5};C.char a={‘A’,’B’,’C’}; D.int a[]={0,1,2,3,4,5};18.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为A.1 B.2 C.3 D.419.若有以下说明,则数值为4的表达式是int a[9]={1,2,3,4,5,6,7,8,9}char c=’a’,d,g;A.a[g-c] B.a[4] C.a[‘d’-‘c’] D.a[‘d’-c]20.能使一个已经打开的文件关闭的C语言函数是A.fopen() B.fover() C.fclose() D.fshut()21.以下说法中正确的是A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分22.以下叙述中正确的是A.C语言比其他语言都高级B.C语言可以不用编译就能被计算机识别执行C.C语言出现的最晚,具有其他语言的一切优点D.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式23.在一个C程序中A.main函数必须出现在固定位置B.main函数可以在任何地方出现C.main函数必须出现在所有函数之后D.main函数必须出现在所有函数之前24.以下叙述中正确的是:A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套25.设int x=1,sum=0;请在以下程序片段中选出能够实现从1累加到100功能的一项:A.while(x<=100) B.for(;x<100;x++)sum=sum+x ; sum=sum+x;C.do{sum+=x; x++} D.for(;x<=100;x++)while(x<=100); x=x+sum;26.有以下程序main(){int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for (i=0;i<3;i++){printf ("%d ",m[k][i]);}}执行后输出结果是A.2 5 8 B.4 5 6 C.3 6 9 D.7 8 927.若t为double类型,表达式t=1, t+5, t++的值是A.1.0 B.6.0 C.6 D.7.028.为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系A.缩排位置相同的if B.在其之前未配对的ifC.在其之前未配对的最近的if D.同一行上的if29.若有定义:int x, *pb; 则正确的赋值表达式是:A.pb=&x B.pb=x C.*pb=&x D.*pb=*x30.以下不正确的叙述是A.预处理命令行都必须以“#”号开始B.在程序中凡是以“#”号开始的语句行都是预处理命令行C.C程序在执行过程中对预处理命令行进行处理D.#define ABCD是正确的宏定义31.若有以下程序fun(int a, int b, int c){ c=a*b; }main(){ int c;fun(2,3,c);printf(“%d\n”,c);}执行后输出的结果是A.0 B.出错 C.6 D.无定值32.有以下程序void fun(int *x){ printf(“%d\n”,++*x); }main(){ int a=25;fun(&a); }A.23 B.24 C.25 D.2633.下列表达式中,值等于1的是A.!b || b B.b>b C.a!=a D.3%434.以下程序的输出结果是(strcpy(a,b)函数作用是将b的内容复制到a上;strcat(a,b)函数作用是将b连接到a后面)#include<ctype.h>main(){ char str[50]=”xyz”, p1[20]=”abcd”, *p2;p2=”ABCD”;strcpy(str+2, strcat(p1+2, p2+1));printf(“%s\n”,str); }A.xyabcAB B.abcABzC.Ababcz D.xycdBCD35.以下不合法的八进制数是:A.0 B.028 C.077 D.0136.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型37.以下合法的数组定义是A.int a()={‘A’,‘B’,‘C’}; B.int a[5]={0,1,2,3,4,5};C.char a={‘A’,’B’,’C’}; D.int a[]={0,1,2,3,4,5};38、以下程序段的输出结果是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C程序设计实践》题目
A1: 设计一个菜单程序,选择数字键1~3分别在屏幕输出“正三角形”、“菱形”和“平行四边形”,选择其他数字结束操作并回到输入界面。

要求:(1)主函数菜单设计(2)每个图形单独是一个函数,即三个子函数。

A2: 字符左右排序。

以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组中。

排序条件:将字符串从中间一分为二,右边部分按字符的ASCII码升序排序,排序后左边部分与右边部分进行交换。

如果原字符串长度为奇数,则最中间的字符不参与处理,仍放在原位置上。

例如,原字符串:
hgfedcba
876594321
则处理后字符串:
abcdhgfe
123498765
要求(1)子函数Exch()实现左右部分交换
(2)子函数Sort():完成排序功能
A3: 循环输入任意三位正整数,判断该三位数是否等于其每位数字的阶乘之和,直到输入999为止。

要求:调用函数判断该三位数是否等于其每位数字的阶乘之和
A4: 求兔子问题。

第1年有1对兔子,每对兔子从出生后第3个年起,就可每年生1对兔子,兔子的寿命是6年,问第n年有多少对兔子?
要求:调用函数计算兔子数量
A5. 输入一个正整数(短整数)、计算输出该数的各位数字之和,各位数字的平均和、反复执行、直到输入的数为999为止。

要求:(1)将各位数字存于数组中
(2)分别调用子函数计算各位数字之和,各位数字的平均和。

A6. 从键盘上输入一个字符串(不多于40个,以回车换行符作为输入结束标记),将其中的大写字母改为小写字母,其它字符不变,然后逆序输出。

要求:(1)调用子函数实现将字符串中的大写字母改为小写字母
(2)调用子函数实现逆序输出功能
A7. 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
要求:(1)调用子函数计算天数
A8. 计算任意多个三个数的最大公约数,直到输入999为止。

要求:(1)调用子函数求最大公约数
A9. 输入一行字符串,将字符串中所有下标为偶数位置上的字母转换为大写。

要求:(1)调用子函数实现转换功能
A10有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。

问第4个人多少岁,他说比第3个人大2岁。

问第3个人多少岁,他说比第2个人大2岁。

问第2个人多少岁,他说比第1个人大2岁。

问第1个人多少岁,他说是10岁。

请问第5个人多大?
要求:用递归实现
A11. 从键盘上输入一个字符串(不多于40个,以回车换行符作为输入结束标记),将其中的大写字母改为小写字母,其它字符不变,然后逆序输出。

要求:(1)调用子函数实现将字符串中的大写字母改为小写字母
(2)调用子函数实现逆序输出功能
A12.写出满足不等式1+1/2+1/3+1/4+…1/N>15最小的N值并输出。

A13. :给定某个年、月、日,计算出这一天为该年的第几天。

要求:(1)用子函数实现闰年的判断
(2)用子函数实现日期的计算
A13.找出满足以下条件三位数n,它除以11所得到的商等于n的各位数字的平方和,且其中至少有两位数字相同。

如:131 131/11=11 12+32+12=11
要求:(1)调用子函数计算n的各位数字的和
(2)调用子函数进行判断并输出
A14.输入一行字符串,将字符串中所有下标为偶数位置上的字母转换为大写。

要求:(1)调用子函数实现转换功能
B1、从键盘输入字符串,将其中的单词(两个空格之间的字符串)的第一个字母转换为其后一个字母(如第一个字母为a,则将其转换为b,如第一个字母为z,则将其转换为a),输出原始字符串及转换后的所有单词,直到输出“*”结束转换和输出。

要求:转换功能由单独的函数完成。

B2:候选人得票的统计。

设有三个候选人,每次输入一个得票的候选人的编号,共有n个人参加投票,最后输出各人得票结果。

要求:有子函数的调用过程
B3.部分排序
要求:
(1)编制子函数 Sort();
(2)对任意几个在1000~9999之间的数;
(3)按每个数的后三位的大小进行降序排列;
(4)取出满足此条件的前5个数依次存入数组mm中,如果后三位的数值相等,则按原先的数值进行升序排列。

例如:处理前:6012 5099 9012 7025 8088
处理后:6012 9012 5099 8088 7025
B4.统计符合特定条件的数
要求:
(1)从键盘随机敲入n个4位数,并把这些数存入数组a中;
(2)编写一个函数,其功能是如果4位数各位上的数字是偶数,统计出满足
此条件的个数;
(3)这些4位数按从大到小的顺序输出;
B5、编写一个函数fun(str),使主程序调用它实现以下功能:循环统计由实参传来的一个字符串中的字母、数字、空格和其他字符的个数,直到输入的字符串为999。

要求:例输入:
Hello Harbin $$$123
输出:
字母个数:11
数字个数:3
空格个数:2
其他字符个数:3
B6: 有一个一维数组,内放n个学生成绩,输出各分数段人数、平均分、最高分和最低分,保留小数点后一位。

要求:(1)分数段人数、平均分、最高分和最低分分别由三个或四个子函数完成。

(2)保留小数点后一位
B7.编写函数int fun(int x, int *pp),其功能是,求出能整除x且不是偶数的各整数,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。

若x的值为30,数组中的数为1,3,5,15,函数返回4。

要求:(1)输出原数组、满足条件的数组和和个数
注:B类题目(红色)基础分数比A类题目(黑色)。

相关文档
最新文档