西北农林科技大学C语言上机实习答案

合集下载

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)大学大一C语言程序设计实验室上机题全部代码答案(实验报告)实验目的:本实验旨在让大一学生通过实际操作掌握C语言的基本语法和常见程序设计题型,提高编程能力。

实验要求:1. 学生需要在实验室中完成上机题,并编写相应的代码。

2. 要求代码具有良好的结构和规范,能够正确运行,并符合题目要求。

3. 学生需要记录代码的思路和过程,并在实验报告中进行详细说明。

实验过程:本次实验共包括以下几个上机题,分别是:1. 题目:输入两个整数,计算它们的和。

实现思路:- 首先,定义两个整型变量a和b,用来保存输入的两个整数。

- 然后,使用scanf函数分别读取两个整数的值。

- 接下来,定义一个整型变量sum,用来保存两个整数的和。

- 使用sum = a + b计算两个整数的和。

- 最后,使用printf函数将结果输出到屏幕上。

2. 题目:输入一个整数n,计算1到n之间所有整数的和。

实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。

- 然后,使用scanf函数读取整数n的值。

- 接下来,定义一个整型变量sum,用来保存1到n之间所有整数的和。

- 使用for循环语句,从1循环到n,累加每个整数的值。

- 最后,使用printf函数将结果输出到屏幕上。

3. 题目:输入一个整数n,判断它是否是质数。

实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。

- 然后,使用scanf函数读取整数n的值。

- 接下来,定义一个布尔型变量isPrime,用来保存n是否是质数的判断结果。

- 使用for循环语句,从2循环到n-1,判断n是否能被其中任意一个整数整除。

- 如果n能被任意一个整数整除,则将isPrime设为假;否则,将isPrime设为真。

- 最后,根据isPrime的值,使用printf函数输出相应的判断结果。

4. 题目:输入一个正整数n,输出n的所有因子。

实现思路:- 首先,定义一个整型变量n,用来保存输入的正整数。

大学c语言实践考试题及答案

大学c语言实践考试题及答案

大学c语言实践考试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. -variableD. variable$答案:B3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World'D. 'Hello World'答案:A4. C语言中,以下哪个运算符用于逻辑与操作?A. &&B. ||C. !D. ~答案:A5. 下列哪个函数用于计算两个数的和?A. max()B. pow()C. sqrt()D. sum()答案:D6. 在C语言中,以下哪个关键字用于定义函数?A. intB. voidC. structD. function答案:B7. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][4];B. int array[3,4];C. int array(3)(4);D. int array[3 4];答案:A8. 下列哪个选项是C语言中正确的条件语句?A. if x > 0 then y = x;B. if x > 0 { y = x; }C. if x > 0 y = x;D. if (x > 0) y = x;答案:D9. 在C语言中,以下哪个选项是正确的无限循环?A. for(;;)B. while(1)C. do {} while(1)D. All of the above答案:D10. 下列哪个选项是C语言中正确的函数声明?A. int function();B. function int();C. int function int();D. int function(int x);答案:D二、填空题(每空2分,共20分)1. 在C语言中,使用________关键字可以定义一个指针变量。

西北农林科技大学c语言上机实习4答案 (1)

西北农林科技大学c语言上机实习4答案 (1)

实习四答案1、字符串连接/* exer 4-1 两串字符连接*/由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。

输入:两串字符输出:连接将两串字符输入样例:abc def 输出样例:abcdef#include<stdio.h>#include<string.h>void main(void){unsigned int i,j;char soustr[80],desstr[80];//printf("please enter soustr:");gets(soustr); /* 输入原串*///printf("please enter desstr:");gets(desstr); /* 输入目的串*/i = strlen(soustr); /* 取目的串尾部位置*/for(j=0; j<=strlen(soustr); j++,i++){soustr[i] = desstr[j]; /* 将原串依次接入目的串尾部*/}puts(soustr);}2、简单加密程序/* exer 4-2 字符加密*/由键盘任意输入一串字符,对其进行加密,加密原则为:如果为字母,将其循环右移2个字母,其他字符保持不变。

输入:一串字符输出:加密后的字符串输入样例:abl2CDxyz输出样例:cdl2EFzab提示: 1. 可用gets()和puts()输入输出字符串。

2. 利用ASCII码运算进行加密。

3. 循环右移的含义是:将a-z,A-Z各看成一个环进行移动,即y右移2个字母后为a,z右移2个字母后为b;Y右移2个字母后为A,Z右移2个字母后为B。

#include<stdio.h>#include<string.h>void main(void){unsigned int j;char soustr[80],secstr[80];//printf("please enter soustr:");gets(soustr); /* 输入原串*/for(j=0; j<=strlen(soustr); j++){if(soustr[j]>='A' && soustr[j]<='Z' )secstr[j] = (soustr[j]-'A'+2)%26+'A'; /*计算大写字母密文*/else if(soustr[j]>='a' && soustr[j]<='z' )secstr[j] = (soustr[j]-'a'+2)%26+'a'; /*计算小写字母密文*/elsesecstr[j] = soustr[j]; /* 其它字符不变*/}puts(secstr);}3、矩阵对角线元素求和/* exer 4-3 主和辅对角线上元素之和*/输入一个5×5的数组,分别求其主对角线和辅对角线上元素之和。

大一c语言上机考试题及答案

大一c语言上机考试题及答案

大一c语言上机考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:C2. C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. defD. void答案:D3. C语言中,哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列哪个选项是C语言中正确的字符串定义?A. char str[] = "Moonshot";B. char str[] = {"Moonshot"};C. char str[] = 'Moonshot';D. char str[] = "Moonshot'';答案:A5. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. ==D. =答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语法是:int _______;。

答案:变量名2. 在C语言中,使用________运算符可以将字符串连接起来。

答案:+3. C语言中,________关键字用于定义一个结构体。

答案:struct4. 使用________函数可以输出格式化的字符串。

答案:printf5. C语言中,________函数用于计算字符串的长度。

答案:strlen三、编程题(每题10分,共60分)1. 编写一个C语言程序,计算并输出100以内所有奇数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("Sum of odd numbers from 1 to 99 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串反转。

西北农林科技大学C语言上机题答案

西北农林科技大学C语言上机题答案
printf("三角形的面积是:%lf\n",s);
}
else
printf("这3个数无法组成三角形!");
}
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,p,s;
scanf("%f%f%f",&a,&b,&c);
{
float a,b,h,c,j,s;
scanf("%f%f",&a,&b);
h=a+b;
c=a-b;
j=a*b;
s=a/b;
printf("和=%f,差=%f,积=%f,商=%f\n",h,c,j,s);
}
printf("%d\n",x);
}
3.一天一只猴子摘下一堆桃子,吃了一半觉得不过瘾,有多吃了一个,第二天接着吃了前一天剩
下的一半,再多吃了一个,以后每天如此,知道滴n天,只剩下一个桃子,问猴子一共摘了多少桃子?
#include<stdio.h>
void main()
{
int n,x=1,i;
与输入输出有关的语句。
#include <stdio.h>
void main()
{
float mark;
scanf("%f",&mark);
if(mark<60)
printf("Fail\n");

大一C语言上机实验试题及答案

大一C语言上机实验试题及答案

/*如果长、宽、高相等,则为立方体*/
printf(“该箱子是立方体。”);
else
printf(“该箱子是长方体。”);
}
2、#include <stdio.h>
void main( )
{ int year,month,days;
printf(“Please enter year and month:\n”);
五、实验调试记录:
六、参考答案: 1、#include <stdio.h> #define PI 3.14 void main( ) { float r1,r2; double s1,s2,s; printf(“Please enter r1,r2:\n”); scanf(“%f%f”,&r1,&r2); s2=r2*r2*PI; s1=r1*r1*PI; s=s2-s1; printf(“s=%lf\n”,s); } 2、#include <stdio.h> void main( ) { float h,c; printf(“请输入华氏温度:”);
scanf(“%d%d%d%d”,&a,&b,&c,&d); if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(a>d) { t=a; a=d; d=t; } if(b>c) { t=b; b=c; c=t; } if(b>d) { t=b; b=d; d=t; } if(c>d) { t=c; c=d; d=t; } printf(“排序结果如下:\n”); printf(“%d,%d,%d,%d\n”,a,b,c,d); }

C语言上机练习汇总及答案

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对应的华氏温度。

............................................ 错误!未定义书签。

c语言第1次实验答案.docx

c语言第1次实验答案.docx

11〜12 (—)C程序设计实验1.1实验目的1.通过运行简单的c程序,初步了解c程序的特点。

2.掌握和理解木实验屮岀现的一些最基木的C语句。

3.学习编制简单的C程序。

导航:顺序程序设计体验选择结构程序设计循环结构程序设计1.2在Visual C++6.0编程环境下的工作流程第1步:进入Visual C++环境后,打开“文件”菜单,执行“新建”命令。

第2步:在“新建”对话框中选择“文件”选项卡,然后选择C++ Source File选项。

第3步:在右边的目录文本框中输入准备编辑的源程序文件的存储路径,在文件文本框屮输入准备编辑的C源程序文件名(如:syl」.c)。

注意后缀是.c。

然后按【确定】按钮。

第4步:在光标闪烁的程序编辑窗口输入上面C程序(注意:/* */之间的内容为程序注释部分,不执行),程序输入完毕单击“文件” 一“保存”,或单击工具栏上的保存按钮,也可以用<Ctrl+S>快捷键來保存文件。

第5步:选择菜单“编译” 一“编译”命令,或单击工具栏上的“编译”图标,也可以按<Ctrl+F7>键,开始编译。

观察调试信息窗口输出编译的信息,如杲有错,则修改后再编译,直至编译信息为:Ocrror(s)表示编译成功。

第6步:单击<F7>键或工具栏图标幽,生成应用程序的.EXE文件(如syl_l.exe)。

第7步:运行程序观察结果。

选择菜单“编译” 一“执行”,或单击工具栏上的执行图标!,也可以使用<Ctrl+F5>快捷键。

第8步:关闭程序工作区1.3实验内容1)[问题]编辑、运行一个简单的C程序。

保存文件为syl-l.Co[代码]# include <stdio.h> main()int a,b,sum,m,f; /*定义整型变量a, b,sum, m, f*/float d; /*定义实型变量d*/printf("Please Input a,b \n ”); /*输出语句*/ scanf(”%d%d”,&a,&b);/*输入语句由键盘输入两个数分别赋予a和b*/sum=a+b; /*赋值语句*/m=a-b;f=a*b;d=a/2.0;printf(”%d + %d=%d\n',,a,b,sum); /* 输出语句 */printf(n%d - %d=%d\n n,a,b,m); printf(M%d * %d=%d\n M,a,b,f); printf(n%d/ %d=%f\n H,a,2,d);2)若有定义int x,a,b,c;,写出顺序执行下列表达式后x的值,然后通过程序验证。

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

实习四答案1、字符串连接/* exer 4-1 两串字符连接*/由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。

输入:两串字符输出:连接将两串字符输入样例:abc def 输出样例:abcdef#include<stdio.h>#include<string.h>void main(void){unsigned int i,j;char soustr[80],desstr[80];//printf("please enter soustr:");gets(soustr); /* 输入原串*///printf("please enter desstr:");gets(desstr); /* 输入目的串*/i = strlen(soustr); /* 取目的串尾部位置*/for(j=0; j<=strlen(soustr); j++,i++){soustr[i] = desstr[j]; /* 将原串依次接入目的串尾部*/}puts(soustr);}2、简单加密程序/* exer 4-2 字符加密*/由键盘任意输入一串字符,对其进行加密,加密原则为:如果为字母,将其循环右移2个字母,其他字符保持不变。

输入:一串字符输出:加密后的字符串输入样例:abl2CDxyz输出样例:cdl2EFzab提示: 1. 可用gets()和puts()输入输出字符串。

2. 利用ASCII码运算进行加密。

3. 循环右移的含义是:将a-z,A-Z各看成一个环进行移动,即y右移2个字母后为a,z右移2个字母后为b;Y右移2个字母后为A,Z右移2个字母后为B。

#include<stdio.h>#include<string.h>void main(void){unsigned int j;char soustr[80],secstr[80];//printf("please enter soustr:");gets(soustr); /* 输入原串*/for(j=0; j<=strlen(soustr); j++){if(soustr[j]>='A' && soustr[j]<='Z' )secstr[j] = (soustr[j]-'A'+2)%26+'A'; /*计算大写字母密文*/else if(soustr[j]>='a' && soustr[j]<='z' )secstr[j] = (soustr[j]-'a'+2)%26+'a'; /*计算小写字母密文*/elsesecstr[j] = soustr[j]; /* 其它字符不变*/}puts(secstr);}3、矩阵对角线元素求和/* exer 4-3 主和辅对角线上元素之和*/输入一个5×5的数组,分别求其主对角线和辅对角线上元素之和。

输入:5×5的数组输出:主对角线和辅对角线上元素之和输入样例:1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 2021 22 23 24 25输出样例:65 65主对角线为从矩阵的左上角至右下角的连线,在数组中即指行列下标相同的元素,辅对角线为从矩阵的右上角至左下角的连线,这些元素的下标之间也可用相应的表达式表达。

#include<stdio.h>#include<string.h>void main(void){int i,j;int a[5][5];int sum1=0,sum2=0;//printf("please enter soustr:");for(i=0; i<5; i++)for(j=0; j<5; j++)scanf("%d",&a[i][j]); /* 输入数组*/for(i=0; i<5; i++){sum1 = sum1+a[i][i]; /* 主对角线*/sum2 = sum2+a[i][4-i]; /* 辅对角线*/}printf("%d %d\n",sum1,sum2);}4、数据顺序调整/* exer 4-4 将最大数调到最前面,最小数调到最后面*/由键盘任意输入10个数,将最大数调到最前面,最小数调到最后面。

输入:任意10个数输出:数据调整后的10个数。

输入样例:0 1 2 3 4 5 6 7 8 9 输出样例:9 1 2 3 4 5 6 7 8 0提示:①定义四个变量d1、d2、x1、x2,分别存放最大数、最小数及它们的位置;②在循环开始前,将第一个元素作为参考,将其值分别存入d1、x1,将其下标分别存入d2、x2;③在循环中将其它元素逐一与d1比较,若比d1大,将其存入d1,并将其下标存入d2;否则将其与x1比较,若比x1小,将其存入x1,并将其下标存入x2;④结束循环后,将d2所示位置的数与第一个数交换,将x2所示位置的数与最后一个数交换,然后输出数组所有元素即可。

#include<stdio.h>#include<string.h>void main(void){int i,a[10],temp;int kmax=0,kmin=0;//printf("please enter :");for(i=0; i<10; i++) /* 输入数组*/scanf("%d",&a[i]);for(i=0; i<10; i++){if(a[i]>a[kmax])kmax = i; /* 找最大数位置*/else if(a[i]<a[kmin])kmin = i; /* 找最小数位置*/}if(kmax == 9 && kmin == 0){temp = a[0];a[0] = a[kmax];a[kmax] = temp; /* 与最前面的数交换*/}else{temp = a[0];a[0] = a[kmax];a[kmax] = temp; /* 与最前面的数交换*/temp = a[9];a[9] = a[kmin];a[kmin] = temp; /* 与最后面的数交换*/}for(i=0; i<9; i++)printf("%d ",a[i]); /* 输出数组*/printf("%d\n",a[i]);}5、字符个数统计/* exer 4-5 统计大写字母、小写字母、数字及其它字符的个数*/由键盘输入任意一串字符串,将其存入一个字符数组,统计其中的大写字母、小写字母、数字以及其他字符的个数。

输入:任意一串字符串输出:大写字母、小写字母、数字以及其他字符的个数。

输入样例:abcdefg123456ABCDEFG 输出样例:7 7 6#include<stdio.h>#include<string.h>void main(void){unsigned int i;int cap=0,low=0,dig=0,oth=0; /* 定义并初始化*/char str[80];//printf("please enter str:");gets(str); /* 输入原串*/for(i=0; i<strlen(str); i++){if(str[i]>='A' && str[i]<='Z')cap++; /* 统计大写字母*/else if(str[i]>='a' && str[i]<='z')low++; /* 统计小写字母*/else if(str[i]>='0' && str[i]<='9')dig++; /* 统计数字*/elseoth++; /* 统计其它字符*/ }printf("%d %d %d %d\n",cap,low,dig,oth);}6、学生成绩计算/* exer 4-6 求每一个学生的总成绩和平均成绩*/已知10个学生的5门课程的成绩,将其存入一个二维数组,求每一个学生的总成绩和每一个学生的平均成绩。

输入:10个学生的5门课程的成绩输出:每一个学生的总成绩和每一个学生的平均成绩输入样例:90.5 80 70 89 84.691.5 81 71 88 84.792.5 82 72 87 84.893.5 83 73 86 84.994.5 84 74 85 84.095.5 85 75 84 84.196.5 86 76 83 84.297.5 87 77 82 84.398.5 88 78 81 84.499.5 89 79 80 84.5输出样例:414.100006 82.820000416.200012 83.240005418.299988 83.659996420.399994 84.080002421.500000 84.300003423.600006 84.720001425.700012 85.139999427.799988 85.559998429.899994 85.979996432.000000 86.400002#include<stdio.h>void main(void){int i,j;float score[10][5]={0.0f};float allsco[10],avesco[10];for(i=0; i<10; i++)for(j=0; j<5; j++)scanf("%f",&score[i][j]); /* 输入学生的成绩*/for(i=0; i<10; i++){allsco[i] = 0; /* 总成绩清零*/for(j=0; j<5; j++){allsco[i] = allsco[i]+score[i][j]; /* 累加总成绩*/}avesco[i] = allsco[i]/5; /* 计算平均成绩*/}for(i=0; i<10; i++)printf("%f %f\n",allsco[i],avesco[i]);/* 输出成绩*/}7、姓名排序/* exer 4-7 姓名排序*/由键盘任意输入10个学生的姓名(以拼音形式),将它们按照ASCⅡ码的顺序从小到大排序。

相关文档
最新文档