C语言上机练习答案
- 格式:pdf
- 大小:114.51 KB
- 文档页数:35
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传回,平均分通过函数值返回。
第一次上机作业(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说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
第一次上机练习(首次)1.阅读以下程序,说出其功能和运算结果(输入5↙)。
#include <stdio.h>int main( ){int n ;int factorial(int n) ;scanf("%d",&n) ;printf("%d\n", factorial(n)) ;return 0 ;}int factorial(int n){int i, fact=1 ;for(i=1;i<=n;i++)fact=fact*i ;return fact ;}答案:120 求n的阶乘。
2.改正下列程序中的错误,在屏幕上显示“Welcome to You!”。
#include <stdio.h>int mian( ){printf("Welcome to You!\n")return 0 ;}答案:2行main4行末尾少分号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") ;return 0 ;}4.编写程序输出以下图案:* * * ** * ** **答案:#include <stdio.h>void main( ){printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n");}5.编写程序,计算并在屏幕上显示10~20的平方值。
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语言上机考试编程题以及答案1、求1+2+3+……….+100。
(循环)答案#include<stdio.h>void main(){int i,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);}2、求1*2*3*……….*10。
(循环)答案void main(){int i=0,j=1;for (i=2;i<=10;i++){j*=i;}printf("%d",j);return 0;}3、输入三个数字,输出他们的最大值。
(if)答案#include<stdio.h>void main(){int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d",d);getch();/*暂停看运行结果*/}int max(int x,int y,int z){int u;if(x>=y&&x>=z)u=x;else if(y>=x&&y>=z)u=y;elseu=z;return(u);4.用起泡法对十个数据排序(数组实现)答案#include<stdio.h>main ( ){ int i,j,t;static int a[10]={5,7,4,2,3,6,1,0,9,8};for(j=0;j<9;j++){ for(i=0;i<9-j;i++){ if(a>a){ t=a;a=a;a=t ;}}}for(i=0;i<10;i++)printf("%2d",a);}5、输入十个数字,逆序输出。
(数组实现)答案#include<stdio.h>main(){int a[10],i=0;for(i=0;i<=9;i++)scanf("%f",&a);printf("\n");for(i=9;i>=0;i--)printf("%f",a);}6输入两个数,交换他们的值并输出。
第一部分习题篇第一章C语言概述一.单选题1.以下说法中正确的是(C)。
A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言中的main()函数必须放在程序的开始部分2.一个C语言程序是由(B)。
A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成3.C语言规定,在一个源程序中,main函数的位置(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)经过编译即可执行D)经过编译解释才能执行7.用高级语言(如C语言)编写的程序称为(A)A)源程序B)目标程序C)可执行程序D)编译程序8.一个函数的组成有(A)。
A)函数首部和函数体B)函数名和函数的声明部分C)主函数和子函数D)声明部分和执行部分9.在C语言中,用来表示“取地址”的符号是(B)。
A)#B)&C)* D)@10.C语言是计算机高级语言,它适合于作为系统描述语言,它(A)。
A)既可用来写系统软件,也可用来写应用软件B)只能写系统软件,不能用来写应用软件C)不能写系统软件,只能用来写应用软件D)既不能写系统软件,也不能写应用软件二.填空题1.C语言用函数作为程序的模块单位,便于实现程序的模块化。
2.C语言允许直接访问物理地址,能进行位操作。
1)10002 显示Hello World! ........................................................................... 错误!未定义书签。
2)10003 显示What is a computer? .............................................................. 错误!未定义书签。
3)10004 显示图形(字符图案输出)......................................................... 错误!未定义书签。
4)10005 显示Welcome to You!(调试示例error01_1) ........................... 错误!未定义书签。
5)10006 显示"Programming in C is fun!" .................................................. 错误!未定义书签。
6)10007 显示图案(字符图案输出)....................................................... 错误!未定义书签。
7)20011 求华氏温度100°F对应的摄氏温度。
........................................... 错误!未定义书签。
8)20012 求华氏温度150°F 对应的摄氏温度。
......................................... 错误!未定义书签。
9)20013 求摄氏温度26°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二级上机考试答案1. 请写出C语言中定义一个整型变量的语句。
答案:int variable_name;2. 在C语言中,如何声明一个指向整型数据的指针?答案:int *pointer_name;3. 如果有一个数组定义如下:int array[5] = {1, 2, 3, 4, 5}; 那么数组的第一个元素是什么?答案:14. 在C语言中,如何使用循环结构打印出1到10的数字?答案:```cfor(int i = 1; i <= 10; i++) {printf("%d ", i);}```5. 请解释C语言中的switch语句的基本用法。
答案:switch语句用于基于不同的情况执行不同的代码块。
它首先评估一个表达式,然后检查这个表达式的值与case标签匹配的情况,执行相应的代码块。
6. 以下代码段的输出是什么?```cint x = 5;printf("%d", x++);```答案:57. 在C语言中,如何声明一个函数,该函数接受一个整型参数并返回一个整型值?答案:int function_name(int parameter);8. 请写出C语言中定义一个结构体的语句,该结构体包含一个整型成员和一个字符型成员。
答案:```cstruct struct_name {int integer_member;char character_member;};```9. 如果有一个函数定义如下:void function_name(void) { /* function body */ }; 那么这个函数的返回类型是什么?答案:void10. 在C语言中,如何使用条件运算符(三元运算符)?答案:条件运算符的一般形式是:condition ? expression1 : expression2,其中condition是条件表达式,expression1是当条件为真时的返回值,expression2是当条件为假时的返回值。
c程序设计上机答案C程序设计是一门实践性很强的课程,上机练习是学习过程中不可或缺的一部分。
以下是一些常见的C语言上机练习题目及其参考答案,供同学们参考。
1. 输出"Hello, World!"```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 计算两个数的和```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("%d + %d = %d\n", a, b, sum);return 0;}```3. 判断一个数是否为素数```c#include <stdio.h>#include <math.h>int isPrime(int num) {if (num <= 1) return 0;for (int i = 2; i <= sqrt(num); i++) { if (num % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。
\n", num);} else {printf("%d 不是素数。
\n", num);}return 0;}```4. 实现一个简单的计算器```c#include <stdio.h>int main() {double num1, num2;char op;printf("请输入运算符和两个数(例如:+ 10 20):");scanf("%c %lf %lf", &op, &num1, &num2);switch (op) {case '+':printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);break;case '-':printf("%.2f - %.2f = %.2f\n", num1, num2, num1 - num2);break;case '*':printf("%.2f * %.2f = %.2f\n", num1, num2, num1 * num2);break;case '/':if (num2 != 0) {printf("%.2f / %.2f = %.2f\n", num1, num2, num1 / num2);} else {printf("除数不能为0。
(完整版)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);}输入一个摄氏温度,要求输出华氏温度。