C语言上机练习参考答案
C语言上机考试
一、单项选择1.题号:4889以下函数调用语句中,实参的个数是().exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6// (v1,v2)是一个逗号表达式,(v3,v4,v5)也是一个逗号表达式答案:A2.题号:4093关于return语句,下列正确的说法是().A、可以在同一个函数中,出现多次B、在主函数和其他函数中,均可出现C、必须在每个函数中,出现D、只能在除主函数之外的函数中,出现一次//只能执行其中的一个的return 语句。
并且函数遇到return语句,结束函数的执行。
答案:A3.题号:4535数组名作为实参数传递给函数时,数组名被处理为().A、该数组的首地址B、该数组的元素个数C、该数组中各元素的值D、该数组的长度答案:A4.题号:4525在C语言的函数中,下列正确的说法是().A、数组名不能作形参B、可以有也可以没有形参C、形参必须是变量名D、必须有形参答案:B5.题号:4083以下正确的函数定义形式是().A、double fun(int x,int y)B、double fun(int x;int y)//错在分号C、double fun(int x,y);//错在形参y没有类型D、double fun(int x,int y);//错在函数头后没有分号答案:A6.题号:4232C语言程序中,必须有的函数是().A、main()B、#include"stdio.h"C、scanfD、printf答案:A7.题号:4048下面对函数的叙述,正确的是().A、函数中无论是否有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套定义D、函数的返回值是通过return语句获得的答案:C8.题号:4073在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().A、传递方式由用户指定B、由实参传给形参,再由形参传回实参C、地址传递D、单向值传递答案:D9.题号:5119下列关于函数的叙述中正确的是().A、每个函数都可以单独运行//主函数可以单独运行。
c语言上机考试训练题库及答案
3000≤s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d),请按照上述标准利用switch语句编写程序计算运费,并画出程序NS图。
#include <stdio.h>
int main()
{
if(i%2==0&&i%3==0&&i%7==0)
printf("%d\n",i);
}
}
26.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include<stdio.h>
main()
{
char ch;
int z=0,k=0,s=0,q=0;
while((ch=getchar())!='\n')
#include<stdio.h>
void main()
{int i,sum=0;
for(i=100;i<=996;i+=4)
if(i/10%10!=4)
sum+=i;
printf("和为:%d",sum);
}
15.输入一个字符串,统计该字符串的长度以及字母a出现的次数。
#include <stdio.h>
void main()
{int i,j=0;
char ch[ ]=" ";
printf("please input some characters\n");
gets(ch);
for (i=0;ch[i];i++)
一套简单的C语言上机试题及答案详解
C 语言上机模拟试题(附详细答案)1.程序填空题请补充main函数,该函数的功能是:从键盘输入一组字符串,以“*”结束输入,并显示出这个字符串。
例如,输入abcdefghi*,结果显示adcdefghi。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!#include <stdio.h>#include <windows.h>#define N 80main(){int i=-1,j=0;char str[N];system("cls");printf("\n Input a string \n");do{i++;/**********found**********/scanf(___1___);/**********found**********/}while(___2___);printf("\n**display the string** \n");while(j<i){/**********found**********/printf(___3___);j++;}}2.程序修改题下列给定程序中,函数fun()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <conio.h>#include <stdio.h>#include <windows.h>#define MAXLINE 20/**********found**********/fun(char *pstr[6]){int I, j;char *p;for(i=0;i<5;i++){for(j=i+1;j<6;j++)/**********found**********/{if(strcmp(*(pstr+i),pstr+j)>0){p=*(pstr+i);/**********found**********/*(pstr+i)=pstr+j;*(pstr+j)=p;}}}}main(){int I;char *pstr[6],str[6][MAXLINE];system("cls");for(i=0;i<6;i++) pstr[i]=str[i];printf("Enter 6 string(1 string at eachline):\n ");for(i=0;i<6;i++) scanf("%s",pstr[i]);fun(pstr);printf("The strings after sorting:\n ");for(i=0;i<6;i++)printf("%s\n",pstr[i]);}3.程序设计题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
c语言上机实验题及参考答案
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
C语言上机作业试题5套含答案
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
C语言上机练习参考标准答案
C语言上机练习参考标准答案C语言上机练习参考答案————————————————————————————————作者:————————————————————————————————日期:第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------Programming in C is fun!I love C language.---------------------------------Program#includemain(){ printf("---------------------------------\n");printf("Programming in C is fun!\n");printf("I love C language.\n");printf("---------------------------------\n");}1-2编写程序,在屏幕上显示一个如下图案:* * * ** * ** **Program (1)#includemain(){ printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n ");}Program (2)#includemain(){ printf("%c%4c%4c%4c\n", '*', '*', '*', '*');printf("%3c%4c%4c\n", '*', '*', '*');printf("%5c%4c\n", '*', '*');printf("%7c\n ", '*');}1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。
C语言上机程序设计题库及答案
C语言上机程序设计题库【程序设计】功能:根据整型形参m,计算如下公式的值:y=sin(m)*10。
【参考代码】double y=0;y=sin(m)*10;return(y);功能:若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。
【参考代码】int i,s=0;for(i=x;i<=y;i+=2)s=s+i;return s;功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)【参考代码】int i,j,t;for(i=0; i < 3; i++)for(j=0; j < i; j++){ t=array[i][j];array[i][j]=array[j][i];array[j][i]=t; }功能:求一个四位数的各位数字的立方和。
【参考代码】int d,s=0;while (n>0){d=n%10;s+=d*d*d;n/=10;}return s;功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
二维数组中的数已在主函数中赋予。
【参考代码】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];}功能:求一组数中大于平均值的数的个数。
【参考代码】int i,k=0;float s=0,ave;for(i=0;i<n;i++)s+=a[i];ave=s/n;printf("%f ",ave);for(i=0;i<n;i++)if(a[i]>ave)k++;return k;题目:分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80)。
C语言上机题参考答案
#include<stdio.h>
void main()
{int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
printf(" ");
for(k=1;k<=i;k++)
printf("*");
printf("\n");
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
t=a[j],a[j]=a[j+1],a[j+1]=t;
for(i=0;i<n;i++)
{ s=0;
for(j=1;j<a[i];j++)
if(a[i]%j==0) s+=j;
if(s==a[i]) printf("%d ",a[i]);
}
2、定义三个整型变量,从键盘输入三个整数,计算平均值,计算结果输出到屏幕上,平均值保留2位小数。
示例:
输入:按如下格式输入3个数:
21 22 25
输出:(注意保留2位小数)
22.67
#include<stdio.h>
void main()
{int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%.2f\n",(a+b+c)/3.0);
C语言程序设计 上机实验指导与习题 参考答案
C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
《C语言》上机实验题及参考答案
《C语言》上机实验题及参考答案2017《C语言》上机实验题及参考答案为了帮助大家备考接下来的计算机二级考试,应届毕业生店铺整理了2017《C语言》上机实验题及参考答案,希望能帮助大家备考计算机二级考试。
1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和*作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
c语言上机练习
}
答案:
2行main
4行末尾少分号
3.编写程序在屏幕上显示以下内容:
Programming is fun.
And Programming in C is even more fun!
答案:
#include <stdio.h>
int main( )
{
printf("Programming is fun.\nAnd Programming in C is even more fun!\n") ;
char c1='a',c2='b';
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%f,y=%f,z=%f\n",x,y,z);
printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6u n=%7ld\n",u,n);
return 0 ;
}
4.编写程序输出以下图案:
* * * *
* * *
* *
*
答案:
#include <stdio.h>
void main( )
{
printf("* * * *\n");
printf(" * * *\n");
printf(" * *\n");
printf(" *\n");
}
5.编写程序,计算并在屏幕上显示10~20的平方值。
C语言程序设计基础上机考试一题目及参考答案
1.输入一串字符(可能包含空格),计算输入的字符串中整数的个数并输出。
2.输入一个字符串,对字符串相同的字符只保留一个(首次出现的字符)。
3.找出一个大于给定整数m且紧随m的素数。
4.统计老年人各年龄段(每10岁为一个年龄段)的人数并存到b数组中,n个人员的年龄放在a数组中。
5.计算并输出k以内最大的10个能被13或17整除的自然数之和。
6.读入一行英文文本, 将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。
7.求A、B两个整数数组数据的交集,并输出交集的数据。
8.输入若干个整数,且每个数均在1000至9999之间,按照每个数的后三位进行升序排序,若后三位相等,则按照原数据升序排序。
9.将字符串s所有的子串t用“copy”替换,并输出替换后的字符串。
10.判断一个整数是否是回文数。
所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。
例如:1221,121是回文数。
1.输入一串可能包含空格的字符串,计算该字符串中数字(整数)的个数。
2.删除字符串中的数字字符3.计算并输出high以内最大的10个素数之和。
4. A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。
5.计算字符串s中含有字符串t的数目, 并输出。
6.编程实现:在已排好序的字符串中插入一个新的字符串,使插入后仍然有序,输出插入后的字符串。
7.在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。
8.判断一个整数是否是回文数。
所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。
例如:1221,121是回文数。
9.找出200以内所有的完数,并输出其因子。
一个数若恰好等于它的各因子之和,称其为完数。
例如:6=1+2+3,其中1、2、3为因子,6是因子和。
10.统计在字符串str中26个小写英文字母各自出现的次数。
C语言上机实验 答案
实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b; d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”); printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。
c语言上机试题库及答案
c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。
c 上机试题及答案
c 上机试题及答案第一部分:多项选择题1. 下面哪个选项是正确的?a) Ab) Bc) Cd) D答案:d) D2. 在计算机科学中,什么是“算法”?a) 一种计算机语言b) 一种软件程序c) 一种解决问题的方法或步骤d) 一种计算机硬件答案:c) 一种解决问题的方法或步骤3. 下面哪个选项是关于二进制的描述?a) 使用0和1进行计算的系统b) 使用10个数字进行计算的系统c) 使用英文字母进行计算的系统d) 使用负数进行计算的系统答案:a) 使用0和1进行计算的系统第二部分:填空题1. 在C语言中,用于在屏幕上输出文本的函数是______。
答案:printf2. 在计算机领域中,RAM代表______。
答案:Random Access Memory(随机存取存储器)3. 当一个程序在运行时遇到错误并突然停止时,我们称之为______。
答案:运行时错误(Runtime Error)第三部分:编程题编写一个C程序,计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main(void) {int sum = 0;for (int i = 1; i <= 100; i += 2) {sum += i;}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```答案:1到100之间所有奇数的和为:2500第四部分:简答题1. 请简要解释什么是“数据类型”,并举例说明。
答:数据类型是一种用于定义变量或表达式的特性,包括数据的范围、内存大小和操作。
例如,在C语言中,int是一种数据类型,用于定义整数类型的变量,如:```cint age = 25;```2. 请简要介绍一下C语言的特点。
答:C语言是一种通用、高级的编程语言,具有以下特点:- 结构简洁:C语言的语法相对简单,易于学习和理解。
- 高效性:C语言可以生成高效的机器代码,执行速度快。
《C语言程序设计习题与上机指南》答案
《C语言程序设计习题与上机指南》答案第一部分习题篇第一章c语言概述一、单选题1.以下说法中正确的是(c)。
a) C语言程序总是从第一个函数开始执行b)在c语言程序中,要调用函数必须在main()函数中定义c)c语言程序总是从main()函数开始执行d) C语言中的main()函数必须放在程序的开头。
2.C语言程序由(b)组成。
a)一个主程序和若干子程序组成b)函数组成c)若干过程组成d)若干子程序组成3.C语言指定主函数在源程序中的位置(C)。
a)必须在开头b)必须在系统调用的库函数之后c)可以是任意的d)必须在结尾4。
以下陈述不正确(d)。
a)一个c源程序可由一个或多个函数组成b)一个c源程序必须包含一个main函数c)c程序的基本组成单位是函数d)在C程序中,注释只能放在一条语句之后。
5.以下关于C语言的陈述不正确(d)。
a)c语言既有高级语言的功能,也具有低级语言的一些功能b)c语言中的一条执行语句都必须用分号结束c)注释可以出现在程序中任意合适的地方d)include命令行后面必须加分号6.用c语言编写的代码程序(b)。
a)可以立即执行b)是一个源程序c)用高级语言(如c语言)编写的程序称为(a)源程序B)目标程序c)可执行程序d)编译器8。
函数的组成是(a)。
a)函数首部和函数体b)函数名和函数的声明部分c)主函数和子函数d)声明部分和执行部分9.在C语言中,用来表示“take address”的符号是(b)。
a)#b)和c)*d)10.c语言是计算机高级语言,它适合于作为系统描述语言,它(a)。
a)既可用来写系统软件,也可用来写应用软件b)只能写系统软件,不能用来写应用软件c)不能写系统软件,只能用来写应用软件d)既不能写系统软件,也不能写应用软件二.填空题1.C语言使用函数作为程序的模块单元,便于实现程序的模块化。
2.C语言允许直接访问物理地址和位操作。
3.用c语言编写的程序,每一个语句和数据定义的结尾必须要有一个分号。
c语言上机考试题及答案
c语言上机考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,用于定义结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是()。
A. 数组必须初始化B. 数组的大小在编译时确定C. 数组可以赋值给另一个数组D. 数组可以作为函数的参数答案:B3. C语言中,用于文件操作的库函数存放在()。
A. stdio.hB. stdlib.hC. string.hD. math.h答案:A4. 下列选项中,不属于C语言标准输入输出函数的是()。
A. printfB. scanfC. getcharD. malloc5. 在C语言中,用于定义枚举类型的关键字是()。
A. enumB. structC. unionD. typedef答案:A6. C语言中,用于定义指针的关键字是()。
A. charB. intC. floatD. *答案:D7. 在C语言中,用于定义函数的关键字是()。
A. structB. voidC. intD. function答案:B8. 下列关于C语言中函数的描述中,错误的是()。
A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以嵌套定义D. 函数可以递归调用答案:C9. 在C语言中,用于定义联合体的关键字是()。
B. unionC. enumD. typedef答案:B10. C语言中,用于定义宏的预处理命令是()。
A. #defineB. #includeC. #pragmaD. #if答案:A二、填空题(每题2分,共20分)1. 在C语言中,()运算符用于定义常量。
答案:#define2. C语言中,()函数用于将字符数组转换为字符串。
答案:strcpy3. 在C语言中,()运算符用于强制类型转换。
答案:(type)或(type)4. C语言中,()函数用于打开文件。
答案:fopen5. 在C语言中,()函数用于关闭文件。
(完整版)C语言上机练习题及答案
(完整版)C语言上机练习题及答案1输入三个整数x,y,z,把这三个数由小到大输出。
# includevoid main(){int x,y,z,a;scanf ("%d,%d,%d",&x,&y,&z);if(x>y) {a=x; x=y;y=a;}if(x>z) { a=x; x=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",x,y,z);}2输入圆的半径,输出圆的周长和面积。
# include# define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# includevoid main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# includeint main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章C语言概述1-1编写程序,在屏幕上显示一个如下输出:---------------------------------Programming in C is fun!I love C language.---------------------------------1-2编写程序,在屏幕上显示一个如下图案:* * * ** * ** **1-3已知某个圆的半径,编写一个程序,用来计算并显示面积。
要求:将π定义为符号常量,并假设一个恰当的半径值。
OutputThe area of circle is: 78.501-4已知两个整数20和10,编写程序,自定义函数add( )将这两个数相加,自定义函数sub( )计算这两个数的差,并按照下面形式显示计算结果:20+10=3020-10=10Output20 + 10 = 3020 – 10 = 101-5 已知变量a 、b 和c 的值,编写程序,用来计算并显示x 的值,其中cb a -=x 请分别用以下数值运行该程序(1)a=250,b=85,c=25(2)a=300,b=70,c=80Output (1)x = 4.17Output (2)x = -30.00第2章 常量、变量及数据类型 & 第3章 运算符和表达式 3-1 编写程序,求华氏温度100o F 对应的摄氏温度。
计算公式如下: 9)32(5-⨯=f c 式中:c 表示摄氏温度,f 表示华氏温度。
(c 定义为实型,f 定义为整型)OutputCelsius degree (corresponding to 100 Fahrenheit) is: 37.78.3-2 一个物体从100m 的高空自由落下,编写程序,求它在前3s 内下落的垂直距离。
设重力加速度为10m/s 2。
要求,将重力加速度定义为符号常量,尝试将其改为9.8 m/s 2,看结果有何不同?OutputThe falling vertical distance (in 3 seconds) is:45.00.3-3将球的半径R定义为符号常量,计算球的表面积(4πR2)和体积(4/3*πR3)。
OutputThe surface area of the ball (radius is 5.20) is: 339.62, and the volume 588.68.3-4给定x、y和z的值,编写程序,使x等于y的值,y等于z的值,z等于x的值。
OutputBefore swap: x=1, y=2, z=3.After swap: x=2, y=3, z=1.3-5编写一个程序,给定一个浮点数(例如456.78),显示该数的十位数字与个位数字之和(例如5+6=11)。
OutputThe sum of the tens digit and units digit of 456.78 is: 5+ 6 = 11.3-6 某种物品每年折旧费的计算方法如下:使用年限废品价值购买价格折旧费-= 编写一个程序,当给定某物品的购买价格、使用年限和每年的折旧费时,计算出其废品价值。
OutputThe scrap value is 90.05.3-7 在库存管理中,某单个物品的经济定购数EOQ 由下面等式给定:储备成本单位时间内每种物品的生产成本需求率⨯⨯=2EOQ 而最优的定购时间间隔TBO 由下面等式给定:储备成本单位时间内每种物品的需求率生产成本⨯⨯=2TBO 编写程序,给定需求率(单位时间内的物品数)、生产成本(每个定购)和储备成本(单位时间内每种物品),计算EOQ 和TBO 。
OutputEOQ is 105.41, and TBO is 0.11.第4章输入输出操作管理4-1输入两个数,将它们交换后输出。
OutputPlease input 2 numbers:3 5↵/* Blue is input */Before swap, the 2 numbers are: 3, 5After swap, the 2 numbers are: 5, 34-2输入一个十进制数,输出对应的八进制数和十六进制数。
OutputPlease input a decimal number: 10↵/* Blue is input */ The octal is 12, and the hexadecimal is a.考虑:如何得到下面的输出?Please input a decimal number: 10↵/* Blue is input */ The octal is 012, and the hexadecimal is 0xa.4-3 编写程序,输入3个整数,计算并输出它们的平均值。
OutputPlease input 3 integers: 4 7 -19↵/* Blue is input */The average is -2.67.4-4 编写一个程序,读取x 和y 的值,显示下面表达式的值:(1)y x y x -+ (2)2y x + (3)()()y x y -+xOutputPlease input x and y: 3.5 4.1↵/* Blue is input */(1) (x+y)/(x-y) = -12.67(2) (x+y)/2 = 3.80(3) (x+y)(x-y) = -4.564-5计算银行存款的本息。
编写程序,输入存款金额money、存期year和年利率rate,根据下列公式计算存款到期时的本息合计sum(税前),输出时保留两位小数。
year1(+sum)=moneyrateOutputPlease input the deposit money: 2500↵/* Blue is input */Please input the deposit period:3↵/* Blue is input */Please input the annual interest rate: 0.023↵/* Blue is input */The total principal and interest is: 2676.504-6输入圆柱的高h和半径r,求圆柱体积volume=π*r2*h。
OutputPlease input the radius of the cylinder: 3.5↵/* Blue is input */Please input the height of the cylinder: 12.7↵/* Blue is input */The volume of the cylinder is: 488.514-7编写一个程序,读取一个实数f,将其四舍五入的值赋值给整型变量n,输出n 的值。
(尝试不用if语句完成本程序,并考虑负数是否适用)Output (1)Please input a real number: 3.6↵/* Blue is input */The rounded integer is: 4Output (2)Please input a real number:-13.2↵/* Blue is input */The rounded integer is: -134-8编写程序,读入两个两位数字的整数,并按照如下形式输出这两个整数的乘积。
4 5* 3 73 1 51 3 51 6 6 5提示:注意格式!第5章判断与分支5-1输入一个字符ch,根据不同情况进行输出:(1)ch为小写字母,输出对应的大写字母;(2)ch为大写字母,按照原样输出;(3)ch为数字,输出对应的数字;(4)ch为其他字符,输出“Other character.”。
Output (1)Please input a character: A↵/* Blue is input */ AOutput (2)Please input a character: b↵/* Blue is input */ BOutput (3)Please input a character: 3↵/* Blue is input */ 3Output (4)Please input a character: @↵/* Blue is input */ Other character.5-2 为鼓励居民节约用水,自来水公司采用按月用水量分段计费的办法,居民应交水费y 元与月用水量x 吨的函数关系式如下(设x ≥0)。
⎪⎩⎪⎨⎧>-≤==155.105.21534)(x x x x x f y编写程序,输入用户的月用水量x 吨,计算并输出该用户应支付的水费y 元(保留两位小数)。
OutputPlease input the water consumption: 27.9↵ /* Blue is input */The water price is: 59.255-3 输入一个年份year ,判断year 是否为闰年。
year 若为闰年,需要满足下列条件之一:(1)能被4整除,但不能被100整除(如2004年是闰年,2100年不是闰年) (2)能被400整除(如2000年是闰年)OutputPlease input the year: 1900 /* Blue is input */ 1900 is not a leap year!5-4输入3个实数,将其按照降序输出(较大数在前),保留3位小数。
OutputPlease input 3 real numbers: 7.8 5 10 /* Blue is input */10.000, 7.800, 5.0005-5输入五级制成绩(A~E),输出相应的百分制成绩(0~100)区间。
五级制成绩对应百分制程序区间为:A(90~100)、B(80~89)、C(70~79)、D(60~69)和E(0~59)。
例如:输入B,输出(80~89)。
(1)用switch语句实现;(2)用if语句实现。
OutputPlease input the grade: B /* Blue is input */80~895-6用switch语句实现,输入数字1~7,输出对应的英文单词Monday, Tuesday, …, Sunday。
OutputPlease input the day in a week: 4↵/* Blue is input */Thursday5-7某高校的某专业录取研究生的条件如下:(1)英语成绩≥55(2)政治成绩≥60(3)专业课成绩≥60(4)以上三科的总数学成绩≥200,或英语和专业课的总成绩≥130。
编写程序,读入一个学生的成绩(英语、政治和专业课),判断是否可以被录取。