重庆西南大学 C语言.网上作业及答案
西南大学19年12月C语言程序设计【0039】大作业答案
(c)程序必须有输入输出提示。
3. 依据下列提供的程序回答问题#include <stdio.h>int f(int m,int n){ int r;while(r=m%n){ m=n; n=r; }return(n);}int main(){ int int_num1, int_num2;printf("请输入两个正的整数(之间用逗号隔开):\n ");scanf("%d,%d",&int_num1,&int_num2);printf("int_num1= %d,int_num2= %d\n",int_num1,int_num2);printf("The maximun common divisor is %d\n",f(int_num1,int_num2));}(1)上述提供程序中,函数f的功能是什么?答:函数f的功能是求两个数的最大公约数。
(2)请依据提供的函数f代码所表示的算法内涵画出其中的传统流程图或N-S图或采用自然语言描述fun代码所表示的算法。
答:辗转相除法(欧几里德法) C语言中用于计算两个正整数a,b的最大公约数,采用函数嵌套调用形式进行求两个数的最大公约数。
其算法过程为:前提:设两数为a,b设其中a做被除数,b做除数,temp为余数Steps:大数放a中,小数放b中;求a/b的余数;若temp=0则b为最大公约数;如果temp!=0则把b的值给a,temp的值给a;返回第二步。
流程图:(3)在VC6.0环境下,运行上述程序时,若输入的数据序列为36,48其输出结果是什么?答:输出结果如下int_num1= 36,int_num2= 48The maximun common divisor is 12二、大作业要求大作业共需要完成3个大题:第1题,满分30分;第2题(1)-(5)任选两题完成,各15分,(6)题必做,10分,满分40分;第3题(1)-(3)必做,满分30分。
西南大学2020年春季[0039]C语言程序设计课程考试参考答案
西南大学网络与继续教育学院课程考试试题卷类别:网教2020年5月课程名称【编号】:C语言程序设计【0039】A卷大作业满分:100 分要答案:wangjiaofudao一、大作业题目1. 简述题(1)“构建程序设计的思想和方法、提升阅读程序能力和编写程序能力”是C语言程序设计主要的课程学习目标。
请简要说明你在本学期的课程学习过程中学习了哪些内容?主要通过哪些途径进行学习?通过C语言的学习,你有哪些收获和体会?要求:回答问题真实真情表达。
(2)简述算法、程序设计语言与程序的异同。
在C语言中程序中有哪三种基本结构?分别简述这三种基本结构内涵。
(3) 请你简述C语言中的数据类型主要包括哪些?请给出至少4种数据类型关键字或定义形式。
在C语言中,为什么要定义变量的数据类型?2.编程题(1)从键盘输入三个整数a、b和c,按照由小到大的顺序输出;(2)编写一个程序实现从键盘输入三条边a、b和c,若能构成三角形则输出其面积,否则输出不能构成三角形的提示信息“No triangle”。
(3) 程序的功能是:输入n(n≥1),计算1+(1+2)+ (1+2+3)+...+(1+2+3+…+n)的值,要求有输入输出提示。
(4) 任意输入一个三位正整数,十位上的数字不动,将个位和百位上的数字交换,构成一个新的正整数后输出。
(例如:523变为325)(5) 编写程序计算函数的值,要求有输入输出提示,结果保留小数点后3位(6) 写一个函数fun用于计算字符串的长度,再写一个测试函数测试其功能。
不允许使用strlen函数(7) 先编写一个函数int fun(int m,int n)用于求两个正整数m,n的最大公约数。
再编写一个测试程序从键盘上任意输入2个正的整数求出其最大公约数并输出。
要求:程序中必须有相应的输入输出提示。
3.阅读下列程序,按照要求回答下列问题#include <stdio.h>int fun(int n){int s=0,i;for(i=1;i<=n;i++)s=s+i;return s;}int main( ){int i,n;int sum=0;printf("请输入一个正整数(n≥5):\n");scanf("%d", &n)for(i=1;i<=n;i++) sum=sum+fun(i);printf("1+(1+2)+(1+2+3)+ ......+(1+2+3+...+%d)=%d\n",n,sum);- `:(1)上述程序中函数fun的功能是什么?(2)依据函数fun的功能画出其流程图。
大学《C语言》试题及参考答案
(2)编写程序输出1-1000之间能够被5整除的所有整数,并求出这些整数的和输出。
(3) 从键盘输入10个正的整数,找出其中的素数输出。
答: #include#includeint f(int x){int i;for(i=2;i<=sqrt(x);i++)if(x%i==0) return 0;return 1}void main(){int a[10],i,n=0,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if( f(a[i]) n++;else a[i]=0;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if( a[j]<A[J+1] ) {t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("共有%d个素数,它们是:",n);(4)编写程序打印下列图案答:#include "stdio.h"void main() {for (int i = 0;i <= 4;i++) {for (int j = 0;j <= i;j++) { printf("*");}printf("\n");}}(5)写一个函数计算一个字符串的长度,再写一个测试函数测试其功能。
不允许使用strlen函数答:#include "stdio.h"void convert(char *str){for (int i = 0; str[i] != '\0'; i++) {if (str[i] >= 'A' && str[i] <= 'Z') {str[i] = str[i] - 'A' + 'a';}}}int main(){char str[20] = "aZcdABxDEF123";convert(str);printf("%s\n", str);return 0;}(6)从键盘上任意输入50个整数存放在a数组中,找出a数组中所有偶数存放在数组b 中,并对b数组的值按降序排列。
西南大学2020年秋季C语言程序设计【1032】机考大作业参考答案
{ int i=1,n,x,j;
char y='A';
printf("please enter:");
scanf("%d",&n);
for(;i<=2*n;i=i+2,y++)
{ for(j=3;j>0;j--)
printf(" ");
for(x=1;x<=i;x++)
printf("%c",y);
for(i=1;i<200;i++)
if(i%9==0)
{n++;
printf("%d ",i);}
printf("\n%d\n",n);
printf("\n");
system("PAUSE");
return 0;}
4.编写程序输出下列图形。
A
BBB
CCCCC
DDDDDDD
解:#include<stdio.h>
二、分析程序,写出运行结果(从3小题中任选2小题完成,每小题10分,共20分)
1.
#include "stdio.h"
void sort(int x[ ],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(x[k]>x[j])k=j;
printf("请输入三角形的三条边a,b,c:");
c语言在线考试题及答案
c语言在线考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义 `int a[3][4], *p[4];`,则以下哪个表达式是正确的?A. p[0] = a[0]B. p[0] = &a[0]C. p = aD. *p[0] = a[0]答案:A3. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 若有以下代码段:```cint a = 3, b = 5;printf("%d", a > b ? a : b);```输出结果是什么?A. 3B. 5C. 8D. 编译错误答案:B5. 在C语言中,以下哪个运算符用于按位异或?A. ^B. |C. &D. %答案:A6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A7. 若有定义 `int x = 10;`,则以下哪个表达式的结果为真?A. x == 10B. x != 10C. x > 10D. x <= 10答案:A8. 在C语言中,以下哪个关键字用于声明一个无限循环?A. forB. whileC. do...whileD. switch答案:B9. 若有以下代码段:```cint a = 3;printf("%d", ++a);```输出结果是什么?A. 3B. 4C. 2D. 编译错误答案:B10. 在C语言中,以下哪个函数用于将浮点数转换为字符串?A. sprintf()B. sscanf()C. strcat()D. strcpy()答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用关键字_________可以定义一个枚举类型。
西南大学18年12月[0039]《C语言》大作业答案
1 (1)简单介绍程序设计基础,然后分别系统地介绍C语言的数据类型与运算符、C语言的3种程序结构、数组与函数、指针与文件等相关知识。
好用,可以用来做数学建模,试验算法;好学,几乎所有的程序功能的实现都可以从代码中读出,容易理解;对于不是靠编程来糊口的话,可以啦,但是如果你想玩点新潮的东西,有点力不从心。
(2)C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2、运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。
能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。
另外C语言具有强大的图形功能, 支持多种显示器和驱动器。
且计算功能、逻辑判断功能强大。
4、C是结构式语言#include<stdio.h>void main (void)//这个就是主函数,第一个void 就是返回类型:有void,int ,float等可以选择,//第二个是main就是函数名,这里是主函数,它名字固定的,其他的函数可以随//意定义,第三个是void,是就是参数类型,一样可以由void,int,float等等选择。
{ //中括号内就是函数体了,是函数的具体内容了int a,b;a=b=0;(3)1. 程序包含算法,算法就是程序的灵魂,一个需要实现特定功能的程序,实现它的算法可以有很多种,所以算法的优劣决定着程序的好坏。
程序员很熟练的掌握了程序设计语言的语法,进行程序设计,软件开发的时候就是设计好的算法,加上软件工程的理论才能做出较好的系统。
【西大2017版】[1032]《C语言程序设计》网上作业及课程考试复习资料(有答案]
[1032]《C语言程序设计》选择题[单选题]12.关于C语言程序描述正确的是( ) A:每个函数必须要有return语句B:主函数必须位于程序的开头C:程序中每行只能写一条语句D:一个程序中只能有一个主函数参考答案:D[单选题]3.正确的实型常数是()A:0B:e2C:0.871D:3e-1.5参考答案:C[单选题]18.变量定义并初始化正确的是( ) A:int a=l,*p=a;B:int a=2,p=*a;C:int a=3,p=&a;D:int a=4,*p=&a;参考答案:D[单选题]19.设struct{int age;int num;}stu,*p=&stu;对结构型变量stu的成员age 引用错误的是( )A:stu.ageB:p->ageC:*p.ageD:(*p).age参考答案:C[单选题]当调用函数时,实参是一个数组名,则想函数传递的是()。
A:数组长度B:数组每一个元素的地址C:数组的首地址D:数组中每个元素的值参考答案:C[单选题]25. 循环语句"for(i=-1;i<4;i++);”循环执行()次A:3B:4C:5D:6参考答案:C[单选题]27、从循环体内某一层跳出,继续执行循环外的语句是:()A:break 语句B:return 语句C:continue 语句D:空语句参考答案:A[单选题]29、设char s[2*5]="12345678";,数组s的长度是()A:10B:9C:8D:7参考答案:C[单选题]20.设int a[10];,对数组元素引用正确的是( )A:a[10]B:a[′0′]C:a(6)D:a[10-10]参考答案:D[单选题]30、设变量b是int,c为float,则表达式b+c之值的数据类型是()A:intB:floatC:doubleD:不确定参考答案:C[单选题]4.设float a,b,c;,函数调用语句f(((a,b),a+c),5);中参数的个数是()A:1B:2C:3D:4参考答案:B[单选题]5.设intm[]={5,4,3,2,l},i=2;,其值为l的数组元素是()A:m[i+2]B:m[i+3]C:m[i-l]D:m[m[i]]参考答案:A[单选题]6. 下列叙述正确的是()A:while语句中的循环体至少被执行一次B:do-while语句中的循环体至少被执行一次C:switch语句中每个case后必须有break语句D:continue和break在循环语句中的作用是相同的参考答案:B[单选题]7.设chars[2*5]="1234567";,数组s的长度是()A:10B:9C:8D:7参考答案:A[单选题]8.下列二维数组定义并初始化正确的是( )A:int a[3][3]=[0,3];B:int a[2][]={{3,4},{5,6}};C:int a[2,3]={2,3,4,5,6,7,8,9};D:int a[][4]={{l,2,4,5},{2,3},{3,4,9}};参考答案:D[单选题]9.设chars1[20]="China",s2[10]="Beijing";,执行下列语句后的输出结果是()strcat(sl,s2); print f("%s, %d\n",s1,strlen(s1));A:China,5B:Beijing,7C:ChinaBeijing,12D:BeijingChina,12参考答案:C[单选题]10.设变量A是int,f为float,则表达式a+f之值的数据类型是()A:intB:floatC:doubleD:不确定参考答案:C[单选题]11.用户自定义标识符正确的是( )A:2abCB:floatC:aa2_aD:sin(x)参考答案:C[单选题]14.设int a[][2]={1,2,3,4,5,6,7,8};,其中缺省的行长度是( ) A:2B:3C:4D:5参考答案:C[单选题]15. 设int x=6;,执行语句x+=x-=x*x;后,x的值是( )A:-60B:0C:6D:36参考答案:A[单选题]16.下列为C语言保留字的是( )A:DoubleB:longC:FLOATD:integer参考答案:B[单选题]17.设int a=3,b=8,c=10;,表达式(a,b),(c,10)的值是( )A:2B:6C:8D:10参考答案:D[单选题]21. 若已定义:int a[9],*p=a;,并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()。
西南大学C语言网上作业复习题及答案
(2)
(3) 当x为其他值时, y=2x-1。
参考答案:
1、对于分段函数,使用if-else语句分情况求值即可
main()
{
int y,x;
scanf(“%d”,&x);
if (x<0)
y=-x;
else if (x<=10)
y=2*x-1;
else
y=3*x+5;
25、用while语句求1~100的累计和。
6、以下程序的输出结果是2,5,1,2,3,-2。
main()
{ int a = 3, b = 2, c = 1;
c -= ++b;
b *= a + c;
{ int b = 5, c = 12;
c /= b * 2;
a -= c;
printf(“%d, %d, %d, ”, a, b, c );
a += --c;
8、若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上
语句后,a和b的值分别是a=4,b=3。
9、请写出以下程序的输出结果1。
main()
{ int a = 100;
if( a > 100) printf(“%d\n”, a > 100);
else printf(“%d\n”, a <= 100);
19、在定义int a[5][6];后,数组a中的第10个元素是.a[1][3](设a[0][0]为第一个元素).
20、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是2.500000
西南大学2020年春季C语言程序设计 【0039】课程考试大作业参考答案
else
printf("No triangle\n");
}
(3)程序的功能是:输入n(n≥1),计算1+(1+2)+ (1+2+3)+...+(1+2+3+…+n)的值,要求有输入输出提示。
(4)任意输入一个三位正整数,十位上的数字不动,将个位和百位上的数字交换,构成一个新的正整数后输出。(例如:523变为325)
while(r=m%n)
{ m=n; n=r;
}
return(n);
}
int main()
{ int int_num1, int_num2;
printf("请输入两个正的整数(之间用逗号隔开):\n ");
scanf("%d,%d",&int_num1,&int_num2);
printf("int_num1= %d,int_num2= %d\n",int_num1,int_num2);
temp=a[0];a[0]=a[2];a[2]=temp;
m=a[0]*100+ a[1]*10+ a[2];
printf("新的三位整数为%d\n",m);
}
(5)编写程序计算函数 的值,要求有输入输出提示,结果保留小数点后3位
(6)写一个函数fun用于计算字符串的长度,再写一个测试函数测试其功能。不允许使用strlen函数
答:途径: (1)理解和记忆程序基本结构;
(2)熟练上机调试技能;
西南大学20年12月C语言程序设计【1032】大作业答案
学期:2020年秋季
课程名称【编号】:C语言程序设计【1032】A卷
考试类别:大作业 满分:100分
一、问答题(从2小题中任选1小题完成,每小题20分,共20分)
1、结构程序设计方法的基本思想是什么?程序包括哪三种基本结构?
答:结构化系统设计方法的基本思想是以系统的逻辑功能设计和数据流关系为基础,根据数据流程图和数据字典,借助于标推的设计淮则和图表工具,通过“自上而下”和“自下而反复,逐层把系统划分为多个大小适当,功能明确,具有一定独立性,并容易实现的模块,从而把复杂系统的设计转变为多个简单模块的设计
for(i=1;i<200;i++)
if(i%9==0)
{n++;
printf("%d ",i);}
printf("\n%d\n",n);
printf("\n");
system("PAUSE");
return 0;}
4.编写程序输出下列图形。
A
BBB
CCCCC
DDDDDDD
解:#include<stdio.h>
printf("请输入三角形的三条边a,b,c:");
scanf("%f%f%f",&a,&b,&c);
if(c<b){p=c;c=b;b=p;}
if(c<a){p=a;a=c;c=p;}
if(b<a){p=b;b=a,b=p;}
if(a+b<=c)
{printf("No triangle!!!\n");
1606西南大学大作业《C语言》[0039]A卷
int i_num = 0;//位数
if(inputX >99 && inputX <1000;//拆开数字
int temp_j = 0;//数组下标
int temp_input = inputX;//中间结果
while(1)
{
(2)若有一个复杂问题的求解,若采用模块化程序设计方法,请你简单阐述用C语言编写一个模块化程序的基本过程。(6分)
答:根据模块化程序设计,一个较大的程序一般应分为若干个程序模块,每个模块用于实现一个特定的功能。在C程序中,模块用函数来实现。函数是构成C程序的基本单位,C语言不仅提供了极为丰富的库函数,如scanf(),printf(),sin(),cos()等,另外C语言还允许用户自己定义函数。用户可以把一些完成特定功能的模块编写成一个相对独立的函数,然后通过调用这些函数使程序完成特定的功能,这样就可以较好地实现操作过程的封装性。对用户隐藏各个操作的细节,从而降低程序设计的复杂度,提高程序的可维护性。
结构化程序设计强调程序设计风格和程序结构的规范化,提倡结构清晰。良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。
采用结构化程序设计方法的好处是:可以使每个模块功能明确,模块间的关系简单、清晰(即可读性强),每个模块内部的修改尽可能不影响其他模块(即独立性好),同时每个模块的正确性容易验证(即可维护性好)。
错误类型和排除错误的方法
(1)语法错误:这是指程序中含有不符合语法规定的语句,例如关键字或符号书写错误(将printf写成print、将数组元素引用写成a(2)等)、使用了未定义的变量、括号不配对等。含有语法错误的程序是不能通过编译的,因此程序将不能运行。
西南大学网络教育《C语言程序设计》网上作业及参考答案
for(j =0 ;j <4 ;j ++)
{
(2);
if(a[i] [j]>max) max=a[i] [j];
if(a[i] [j]<min) min=a[i][j];
}
printf("max=%d,min=%d,sum=%d\n",(3) );
}
参考答案:
29.键入数据至二维数组,求出其中的最大值、最小值及所有元素之和。<\/p>
1.单精度数
2.双精度数
3.常量
4.字符串
7、
定义一个具有10个元素的整型数组,应该使用语句()。
1.int a[10];
2.int a[2
3.5];"
4.int a[];
5.int *a[10]
8、
若已定义:int a[9],*p=a;,并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()。
55、
编写程序找出100以内能够被7整除的所有整数,并输出。
参考答案:
此题没有标准答案,只要能运行出相应结果就行。老师会在值机辅导时进行相应的辅导,请进入论坛查看
56、
#include “stdio.h”
fun(int x,int y,int z)
{ z=x*x+y*x;}
Void main()
{
Int a=31;
此题没有标准答案,只要能运行出相应结果就行。老师会在值机辅导时进行相应的辅导,请进入论坛查看
52、
.利用循环结构输出下列图形。
A
BBB
CCCCC
DDDDDD
西南大学0039《C语言》作业参考答案
西南大学网络与继续教育学院课程代码:0039 学年学季:20201单项选择题1、对于下面程序输出结果的判断中,正确的是()。
#include <stdio.h>void main(){int x;for(x=1;x<=100;x++)if (++x%2= =0)if (++x%3= =0)if (++x%5= =0)printf("%d,",x); }D. 输出31,61,91输出30,60,90不输出任何内容输出29,59,892、在循环结构中,continue语句的作用是( )E. 继续执行本次循环提前退出本重循环提前结束本次循环提前退出多重循环3、设char s[ ]=“1234567”;,执行printf(“%d,%d\n”,strlen(s),sizeof(s));后的输出结果是( )B. 7,87,78,88,74、执行语句x=(a=3,b=a--);后,x,a,b的值依次是()2,3,23,3,23,2,23,2,35、下面程序的输出结果是()。
#include "stdio.h"int main(){int x=-1,y=4;int k;k=x++<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}0,0,31,1,21,1,21,0,36、下列程序的运行结果是()#include "stdio.h"int main( ){int a[3][3]={1,4,17,3,6,19,2,5,18},i,s=0;for(i=0;i<3;i++)s=s+a[i][2-i];printf("s=%d\n",s);}A. s=26s=25s=24s=227、对二维数组正确定义并初始化的是( )int a[3][ ]={{l,2,3},{4,5,6}}int a[3][3]={a,b,c,d,e,f,g}int a[ ][3]={1,2,3,4,5,6}int a[3][3]=(1,2,3,4,5,6)8、下面程序的输出结果是()。
西南大学大二计算机专业C语言程序设计试卷及答案
//翻开文件后,如下步骤写程序#include <>//首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数//接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中表达。
但是这个函数有且仅有一个int main(){//这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面//比方我要实现打印HelloWorld字符,那么我就调用printf〔〕标准输出语句printf("Hello World!\n");//这个语句表示原样输出引号内的字符,‘\n’表示换行return0;//最后,因为main函数有一个int的返回类型限定,那么我们使用return 语句返回一个int类型的值 0.}//这样就结束了。
一个简单的但又完整的C程序就有了,//下一步就是使用编译器编译成目标的可执行文件://如果是windows下的vc++//最后就是运行了,windows下直接点击vc++的运行或双击hel dos窗口运行,并显示结果,linux下使用“./a.out〞可以直接运行,运行结果会显示在shell中。
//这就是整个完整的流程,包括每一步。
调试过程:设置断点,调试命令,观察变量,查看内存,常见错误:C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。
VC++ 和DEV C++都是C++语言的开发工具。
如果只是做些小程序,根本上看不出区别。
两者DEBUG 和RELEASE上的时间有所不同。
还有一点就是,通常如果是在VC++下编写的代码,不是很标准,拿到DEV C++上会报错。
而反过来则可以运行。
这里涉及到GCC的问题,它对标准的支持表现在不支持非标准的东西,但是DEV C++有个最大的好处就是体积小,没有VC++这么大,可以装到U盘里。
西南大学2020年春季C语言程序设计【1032】大作业课程考试参考答案
西南大学培训与继续教育学院课程考试试题卷学期:2020年春季课程名称【编号】: C语言程序设计【1032】 A卷考试类别:大作业满分:100 分一、问答题(从2小题中任选1小题完成,每小题20分,共20分)1、简述算法的概念及其特点,同时请画出求s=1+2+3+…+5之值的算法流程图。
答:算法概念:在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
算法的特点:(1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的。
(2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可。
(3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题。
(4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法。
(5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决。
2、在VC环境下,调试程序的基本步骤有哪些?调试程序中常见的错误有哪些?如何解决发现这些错误?答:分析问题、构建算法、描述算法、编码、调试。
在VC环境下,调试程序的基本步骤有编辑、编译、连接、执行调试程序中常见的错误有语法错误和逻辑错误。
其中语法错误通过编译来实现,逻辑错误通过单步追踪和设置断点的方法来发现逻辑错误。
二、分析程序,写出运行结果(从3小题中任选2小题完成,每小题10分,共20分)1.#include "stdio.h"void sort(int x[ ],int n){int i,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(x[k]>x[j])k=j;if(i!=k)- 1 -。
西南大学9020《C语言》21春在线作业答案
西南大学培训与继续教育学院课程代码: 9020 学年学季:20211单项选择题1、能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是1.a>=0 | a<=102.a>=10 && a<=03.a>=10 || a<=04.a>=10 or a<=02、1.执行以下程序段后,输出结果和a的值是()。
int a=10; printf("%d",a++);1.11 和 112.11 和103.10 和104.10 和 113、以下程序中,while循环的循环次数是______main(){int i=0;while(i<10){if(i<1) continue;if(i==5) break;i++;}}1. 42. 63. 14.死循环,不能确定次数4、若有说明语句:char c='\72';则变量c()。
1. C. 说明不合法,c的值不确定2.包含3个字符3.包含2个字符4.包含1个字符5、C语言程序的三种基本结构是()1.循环结构,转移结构,顺序结构2.嵌套结构,递归结构,顺序结构3.递归结构,循环结构,转移结构4.顺序结构,选择结构,循环结构6、以下叙述正确的是________1.可以在一个函数中定义另一个函数2.构成C程序的基本单位是函数3.main( )函数必须放在其他函数之前4.所有被调用的函数一定要在调用之前进行定义7、有以下程序/>main( ){ char s[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序运行后的输出结果是 __________<br1.152.163.124.598、以下叙述中正确的是( )1.预处理命令行必须位于源文件的开头2.在源文件的一行上可以有多条预处理命令3.宏名必须用大写字母表示4.宏替换不占用程序的运行时间9、以下叙述中错误的是 __________1.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出2.数组名代表的是数组所占存储区的首地址,其值不可改变3.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出,可以赋初值的方式确定数组元素的个数10、已有定义:char a[]="xyz",b[]=( )1.数组a和b的长度相同2.a数组长度小于b数组长度3.a数组长度大于b数组长度4.上述说法都不对11、有以下程序main( )程序运行后的输出结果是__________1.422.453.564.6012、以下对结构体描述正确的是__________1.结构体类型是一种基本数据类型2.结构体类型变量的字节长度等于该变量所有成员的长度之和3.结构体变量的成员不能是结构体类型4.结构体变量的成员不能是共同体类型13、有char str[10]=“hello”,则str[8]= __________1.’ ’2.’o’3.不确定值4.’\0’14、设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是__________1.while循环执行10次2.循环是无限循环3.循环体语句一次也不执行4.循环体语句执行一次15、有int a[10]=( )1.82.93.04.不确定的值16、以下不能定义为用户标识符是__________1.Main2._03._int4.sizeof17、若k为整型,以下while循环__________次。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
7、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf("Enter mark:\n”);scanf("%f”,&a);
else a[i]=0;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if( (3) ) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("共有%d个素数,它们是:",n);
for(i=0;i<9;i++)
{ printf("\n%d”,fun(9));
}
该程序的输出结果是多少?
9、请根据要求完善下列程序(每空2分,共6分)
下列程序的功能是在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。请填空:
#include "stdio.h"
void main()
{int a[10],i,max;
if(a[i]!=0) printf("%d ",a[i]);
}
答:1、函数的功能是求字符串的长度
2、i的值为-1,循环次数是100,i--执行的次数为101
3、函数f的功能是求任意整数的各位数字之积, 该程序的运行结果是15,0
4、函数p的功能是对n个整数排序,该程序的运行结果是11 30 34 50 67 75 89 102 125 145
sort(a,10);
for(i=0;i<10;i++)
printf("%10d”,a[i]);
}
5、下述循环的循环次数是多少?程序段执行结束后,k的值是多少?
int k=2;
while (k=0) printf("%d",k),
k--;printf("\n");
while( (1) )
{sum___(2)____;x[n]=a ;n++;
scanf("%f”,&a);}
ave=____(3)___;
printf("Output:\n”);
printf("ave=%f\n”,ave);
for(i=0;i<n;i++) if (x[i]<ave) printf(%5f.2”,x[i]);
printf("%d\n”,s)
3、在下列程序中,函数f的功能是什么? 该程序的运行结果是多少?
#include
unsigned f(unsigned num)
{unsigned k=1;
do
{k*=num%10;
num/=10;
}while(num);
for(i=0;i<10;i+4;,&a[i]);
for( (1) ;i<10;i++)
if(a[i]>a[max]) (2)
printf("最大值为:%d ,下标是:%d", (3) ,max);
if(x%i==0) return 0;
(1)
}
void main()
{int a[10],i,n=0,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if( (2) ) n++;
8、答:内部函数:一个函数只能被本文件中的其他函数所用,在定义时使用static。 外部函数:一个函数不光是被本文件中其他函数调用,还可以被其他文件中的函数调用,定义时用extends。
第四次作业
1、下列函数的功能是什么
int fun(char *x)
{char *y=x;
}
8、有如下程序
#include <stdio.h>
int fun(int x)
{ int p;
if(x= =0 || x= =1) return 3;
else p=x-fun(x-2);
return p;
}
void main()
6、C语方为什么规定对所有用到的变量要"先定义,后使用”这样的做有什么好处?
7、什么是指针,什么是指针变量?
8、什么是内部函数和外部函数?
1、答:(1)C程序结构简洁、灵活、高效。(2)提供了丰富的数据类型。 (3)是一种很好地体现了结构化思想的程序设计语言。(4)由于提供了位操作,因此,具有高级语言和低级语言的特点。(5)由于提供了预处理命令,位大型系统的开发提供良好的机制。 一般,当被调用的函数在调用函数之后的时候使用函数的原型。其作用是利用它在程序的编译阶段对调用函数的合法性进行全面检查。
6、下列程序的运行结果
#include<stdio.h>
int fun(int n)
{int m=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=(-1)*f;
}
return m;
}
main()
{printf("m=%d\n”,fun(10));
2、答:(1)有穷性 (2)确定性 (3)有零个或多个输入 (4)有一个或多个输出 (5)有效性
3、答:传统流程图用流程线提出各框的执行顺序,对流程线的使用没有严格的限制,使用者随意性大,阅读者会花费很大的精力去追踪流程,理解逻辑。 现在用的有顺序结构、选择结构、循环结构。共同特点:只有一个入口,一个出口,结构内的每部分都有机会执行到,结构内存在“死循环”。
return k;
}
void main()
{int x=35,y=550;
printf("%d,%d”,f(x),f(y));
}
4、在下列程序中,函数p的功能是什么? 该程序的运行结果是多少?
#include "stdio.h”
void p(int x[ ],int n)
5、循环次数是0次,k的值是-1
6、m=-5
7、(1)a>=0 (2)sum + a (3)sum / n
8、该程序的输出结果是7
9、(1)i=1,max=0或max=i=0 (2)max=i; (3)a[max]
10、(1)return 1; (2)d(a[i]) (3)a[j]<a[j+1]
{int i,j,k,t;
for(i=0;i
{k=i;
for(j=i+1;j
if(x[j]
t=x[k];x[k]=x[i];x[i]=t;
}
}
void main( )
{int a[10]={34,50,89,67,102,11,75,30,125,145},i;
4、答:自顶向下;逐步细化;模块化设计;结构化编码。
5、答:C语言包括基本类型(整型、字符型、浮点型、枚举类型)、构造类型(数组、结构体、共同体类型)、指针类型、空类型。 C语言的特点就是数据类型较多,如提供了一个构造体的数据结构,FORTRAN都不能提供这种数据结构。处理同一类问题,如果结构不同,就可以采用不同的算法,C语言为用户提供了方便。
}
10、下列程序的功能是:从键盘输入10数,找出其中的素数并按降序输出这些素数。请根据给定的程序和程序的功能完善该程序。(每空2分,共6分)。
#include <stdio.h>
#include <math.h>
int f(int x)
{int i;
for(i=2;i<=sqrt(x);i++)
while(*y++);
return y-x-1;
}
2、在下列程序中,循环结构执行结束后,i的值是多少,循环次数是多少?i--执行的次数是多少?
#include
void main()
{ int i=100, s=0;
while(i--)s+=i;
6、答:(1)凡未被事先定义的,C语言不把他认作变量,这样的目的能是为了保证程序中的变量能被正确的使用。(2)每一个变量被指定为一个确定类型,在编译时C语言就能为其分配相应的存储单元。(3)指定每一个变量属于一个类型,便于在编译时检查在程序变量进行的运算合法性。
7、答:指针:就是一个变量的地址。指针变量:有一个变量专门用来存放另一变量的地址(即指针)。
第一次作业
1、通过C语言的学习,请认为C语言具有哪些重要特点? 什么时候使用函数的原型?使用函数原型的作用是什么?
2、算法的特性有哪些?
3、传统流程图有哪里缺点?为了提高算法质量,现在有哪三种结构,他科共同特点有哪些?
4、结构化程序设计方法有内容是什么?
5、请将C语方的数据内型和其它高级语言的数据类型做比较,C语言有哪些特点?