(0039)《C语言》
别妄想泡我
992次浏览
2020年08月02日 02:28
最佳经验
本文由作者推荐
概念的定义-作坊
第一次作业
[论述题]
1、通过C语言的学习,请认为C语言具有哪些重要特点? 什么时候使用函数的原型?使用函数原型的作用是什么?
2、什么是算法?算法的特性有哪些?描述算法的主要方法有哪些?举一问题的算法给出其算法描述。
3、传统流程图有哪里缺点?为了提高算法质量,现在有哪三种基本结构?其共同特点有哪些?
4、C语言是一种结构化程序设计语言,在C语言中是如何体现结构化程序设计思想的?结构化程序设计方法有内容是什么?
5、请给出C语言的主要数据类型,请你至少给出4种以上的数据类型实例。
6、C语方为什么规定对所有用到的变量要"先定义,后使用”?这样的做有什么好处?
7、什么是指针,什么是指针变量?指针所指向的变量?给一实例说明
8、什么是内部函数和外部函数?
9、在VC环境下,调试程序的基本步骤有哪些?调试程序中常见的错误有哪些?如何解决发现这些错误?
10、一个C程序由哪些要素构成,请给出一个C语言程序进行说明。
11、什么是函数的原型?其作用是什么?在这些作用中如何使用?
参考答案:
1、(1)C程序结构简捷、灵活、高效。
(2)提供了丰富的数据类型。
(3)是一种很好地体现了结构化思想的程序设计语言。
(4)由于提供了位操作,因此,具有高级语言和低级语言的特点。
(5)由于提供了预处理命令,为大型系统的开发提供良好的机制。
一般,当被调用的函数在调用函数之后的时候使用函数的原型。其作用是利用它在程序的编译阶段对调用函数的合法性进行全面检查。
2、算法是求解问题的有限步骤的集合
算法的特点有:(1)有穷性(2)确定性(3)有零个或多个输入(4)有一个或多个输出(5)有效性
描述算法的方法有:自然语言、传统流程、N-S图等
实例依据学生答题评定
3、主要缺点:
传统流程图用流程线提出各框的执行顺序,对流程线的使用没有严格的限制,使用者随意性大,阅读者会花费很大的精力去追踪流程,理解逻辑。
程序的三种基本结构有:顺序结构、选择结构、循环结构。
共同特点:只有一个入口,一个出口,结构内的每部分都有机会执行到,结构内存在"死循环”。
4、在C语言中是通过函数体现结构化程序设计思想的。
结构化程序设计方法的主要内容:
自顶向下;逐步细化;模块化设计;结构化编码。
5、主要数据类型有:C语言包括基本类型(整型、字符型、浮点型(单、双精度型)枚举类型)、构造类型(数组、结构体、共用体类型)、指针类型、空类型。
数据类
型实例依据学生答题评定
6、对所有用到的变量进行"先定义,后使用”的原因:
凡未被事先定义的,C语言不把他认作变量,这样的目的能是为了保证程序中的变量能被正确的使用。
好处:
(1)每一个变量被指定为一个确定类型,在编译时C语言就能为其分配相应的存储单元。
(2)指定每一个变量属于一个类型,便于在编译时检查在程序变量进行的运算合法性。
7、指针:就是一个变量的地址
指针变量:有一个变量专门用来存放另一变量的地址(即指针)。
如果将一个变量的地址(指针)赋给同一类型的指针变量,则该变量为指针变量所指向的变量。
如int x=10,*p=&x;
则:整数变量x的值为10,指针变量为p,指针所指向的变量为*p.
8、内部函数:一个函数只能被本文件中的其它函数调所用,在定义时使用static。
外部函数:一个函数不光是被本文件中其它函数调用,还可以被其它文件中的函数调用,定义时用extern。extern可缺省。
9、 在VC环境下,调试程序的基本步骤有编辑、编译、连接、执行
调试程序中常见的错误有语法错误和逻辑错误。其中语法错误通过编译来实现,逻辑错误通过单步测试和设置断点的方法来发现逻辑错误。
10、一个C程序由若干函数组成,但至少一个主函数。而每个函数包括函数的首部和函数体。
C语言程序实例依据学生答题评定。
11、若自定义了一个函数,则该函数的首部称之为该函数的原型
函数原型的作用:调用函数的接口;用于原型声明
其中函数的调用方法:函数(实在参数)
函数的原型声明:当被调用函数在调用函数之后时,必须进行原型声明,在程序最前面或在调用函数中进行声明,声明方法:
函数的首部;
第二次作业
[论述题]
4.写出下列表达式所对应的C语言表达式,其中x,y为整数,a,b,c为实数类型
内容见附件写C语言表达式
参考答案:
(1)x*x-3.0*x*y/(2-y)
(2)sqrt(fabs(a*b-c*c))
(3)sqrt(abs(a*b-c*c)*cos(x)/a)
(4)(1+sqrt(x))/(1-y/x)
(5)cos(x)+sqrt(3*a*b) /(2-y)
(6)sqrt(abs(a*b-c*c)*sin(x)/b)
[论述题]
1.下列表达式的值是多少?处理表达式后, a的值是多少?,假设整数类型变量a的值为12
(1)a+=a (2)a-=2
(3)a*=2+3 (4)a/=a+a
(5)a%=(n%=2) n的值等于5 (6)a+=a-=a*a
2.已知int x,a=14,;double y=3.5;处理表达式x= (double)y+(a/=a+a)后变量x,y,a的值分别是多少?表达式的值是多少?
3.已知int a=0,b=8,c=9;处理表达式a++||b++||c++后变量a,b,c的值是多少?表达式的值是多少?
参考答案:
1.表达式计算
(1)表
达式a=a+a的值是24?处理表达式后, a的值是24
(2)表达式a=a-2的值是10处理表达式后, a的值是10
(3)表达式a=a*(2+3)的值是60处理表达式后, a的值是60
(4)表达式a=a/(a+a)的值是0,处理表达式后, a的值是60
(5) 表达式a%=(n%=2)的值是0,处理表达式后, a的值是12
(6) 表达式a+=a-=a*a的值是-264,处理表达式后, a的值是-264
2.x为3、y为3.5、a为0、表达式的值为3
3.a为1、b为9、c为9,表达式的值为1
第三次作业
[单选题]设double x=5.168;,执行printf("%5.3f
”,(int)(x*10+0.5)/10.0);后的输出结果是( )
A:5.218
B:5.210
C:5.200
D:5.168
参考答案:C
[单选题]
设char s[ ]="1234567”;,执行printf("%d,%d\n”,strlen(s),sizeof(s));后的输出结果是( )
A:7,7
B:7,8
C:8,7
D:8,8
参考答案:B
[单选题]设char ch=‘a';,执行printf("%d,%c
”,ch,ch+2);后的输出结果是( )
A:97,c
B:97,99
C:a,c
D:a,a+2
参考答案:A
[单选题]下列叙述正确的是( )
A:continue语句的作用是跳出循环体
B:while循环语句的循环体至少执行一次
C:do-while循环语句的循环体至少执行一次
D:switch语句中的每个case语句组必须含有break语句
参考答案:C
[单选题]设struct{int x;int y;}m[2]={7,3,2,1};,执行printf("%d
”,m[0].x/m[1].x*m[0].y); 后的输出结果是( )
A:10.5
B:9
C:8.0
D:7
参考答案:B
[单选题]设int a=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是( )
A:0
B:1
C:2
D:3
参考答案:A
[单选题]字符串""ABC""的长度是( )
A:11
B:7
C:5
D:3
参考答案:B
[单选题]求解表达式f=(3.0,4.0,5.0),(2.0,1.0,0.0)后; 下列正确的选项是( )
A:语法错误
B:使f的值为5.0
C:使f的值为0.0
D:使f的值为2.0
参考答案:B
[单选题]下列语句中,最正确的赋值语句是( )
A:A=7+b+c=a+7
B:a=7+b++=a+7
C:a=7+b,b++,a+7
D:a=(7+b,c=a+7)
参考答案:D
[单选题]设m,n,a,b,c,d均为0,执行(m=a= =b)||(n=c= =d)后,m,n的值是( )
A:0,0
B:0,1
C:1,0
D:1,1
参考答案:C
[单选题]设int a=2,b;则执行b=a&&1后b的值是( )
A:0
B:1
C:2
D:3
参考答案:B
[单选题]对于条件表达式(M)?(a++):(a--)来说,其中的表达式M等价于( )
A:M= =0
B:M= =1
C:M!=0
D:M!=1
参考答案:C
[单选题]若有定义: char s[81];以下哪个选项不能实现将字符串"This is a Program."存入数组s中( )。
A:gets(s+2)
B:scanf("%20s",s)
C:(i=0;i<18;i++) ((c=getchar( ))!=' ') D.i=0;while ((c=getchar( ))!=' ')
D:D.i=0;while
参考答案:B
[单选题]
下面程序的输出结果是(
)。
#include
void f(int x,int y)
{int temp;
temp=x; x=y; y=temp;
}
void main()
{int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d
",x,y,z);
}
A:1,2,3
B:3,1,2
C:2,3,1
D:1,3,2
参考答案:D
[单选题]设有定义"int a=5,b,*p=&a;",执行下列语句后,b的值不为5的赋值语句是( )。
A:b=*&a
B:b=*p
C:b=a
D:b=*a
参考答案:D
[单选题]循环语句for (x=0,y=0;(y!=123)||(x<4);x++);的循环执行( )
A:无限次
B:不确定次
C:4次
D:3次
参考答案:A
[单选题]假定p1和p2是已赋值的字符型指针,则下述有关运算中,非法的是( )
A:A.p2=p1+(p1-p2); printf("equal.");
B: (p1= =p2)
C:C.*(p1-2+p2)=getchar( );
D:*(p1+=2)=*p2
参考答案:C
[单选题]对二维数组正确定义并初始化的是( )
A:int a[ ][3]={1,2,3,4,5,6}
B:int a[3][3]=(1,2,3,4,5,6);
C:int a[3][ ]={{l,2,3>,{4,5,6}}
D:int a[3][3]={a,b,c,d,e
参考答案:A
[单选题]设int a[ ]={12,34,56,78},*p=a;,下列表达式的值为56的是( )
A:p[1+2]
B:*(a+2)
C:a[3]
D:*(p+3)
参考答案:B
[单选题]( )是C语言提供的合法的数据类型保留字(或称关键字)
A:Float
B:unsigned
C:integer
D:Char
参考答案:B
[单选题]char型常量在内存中存放的是( )
A:ASCII码值
B:BCD码值
C:内码值
D:十进制代码值
参考答案:A
[单选题]关下面语句的输出的判断中,正确的是( )。
long x=-4L;printf("%ld",x);
A:输出值为-4
B:赋值非法
C:输出值不确定
D:输出值为4
参考答案:A
[单选题]下列符合C语言语法的实数是( )
A:1.5e0.5
B:3.16e
C:0.5e-10
D:e+8
参考答案:C
[单选题]char s='092';的作用是( )
A:使s包含一个字符
B:说明不合法,s的值不定
C:使s 包含四个字符
D:使s包含三个字符
参考答案:B
[单选题]表达式a=(a=6,a*6,a+3);运行后,则a的值为( )
A:39
B:36
C:6
D:9
参考答案:D
[单选题]下列选项中不是C语言提供的合法保留字的是( )
A:switch
B:cher
C:case
D:default
参考答案:B
[单选题]下列数据中属于"字符串常量”的是( )
A:ABC
B:"ABC"
C:'abc'
D:'a'
参考答案:B
[单选题]执行语句x=(a=3,b=a--);后,x,a,b的值依次是( )
A:3,3,2
B:3,2,2
C:3,2,3
D:2,3,2
参考答案:C
[单选题]设有语句int a=3;,执行语句a+=a-=a*a;后,变量a的值是( )
A:3
B:0
C:9
D:-12
参考答案:D
[单选题]设n=10,i=4;则赋值运算n%=i+1执行后n的值是( )
A:0
B:3
C:2
D:1
参考答案:A
[单选题]设int m=1,n=2;则表达式++m= =n的值是( )
A:0
B:1
C:2
D:3
参考答案:B
[单选题]表达式(1,2,3,4)的值是(
A:1
B:2
C:3
D:4
参考答案:D
[单选题]下面程序的输出结果是( )。
#include
void main()
{printf("%d",null);}
A:输出0
B:因变量无定义,编译出错,没有输出
C:输出-1
D:输出0
参考答案:B
[单选题]若有如下程序,要求a1,a2,c1,c2的值分别为10,20,A,B,正确的数据输入是( )。
#include
void main()
{int a1,a2;
char c1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2); }
A:020AB
B:10 20AB
C:10 20 AB
D:10 20AB
参考答案:D
[单选题]有如下程序,输入数据12345
#include
void main()
{int x; float y;
scanf("%3d%f",&x,&y); }
A:12.000000
B:45.000000
C:12345.000000
D:0.000000
参考答案:B
[单选题]执行下述程序后,输出的结果是( )。
#include
#define SQR(X) X*X
void main()
{int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d",a); }
A:10
B:1
C:9
D:0
参考答案:B
[单选题]设x,y,z,t均为int型变量,则执行x=y=z=1;t=++x||++y&&++z;语句后,t的值为( )
A:不定值
B:2
C:1
D:0
参考答案:C
[单选题]下面程序的输出结果是( )。
#include
void main()
{int x=-1,y=4;
int k;
k=x++<=0&&!(y--<=0);
printf("%d,%d,%d",k,x,y);}
A:0,0,3
B:1,1,2
C:1,0,3
D:1,1,2
参考答案:C
[单选题]下面程序的输出结果是( )。
#include
void main()
{int a,b,c=241;
a=c/100%9; b=-1&&-1; printf("%d,%d",a,b); }
A:2,0
B:2,1
C:6,1
D:0,-1
参考答案:B
[单选题]语句while (!e)中的条件!e等价于( )
A:e= =0
B:e!=1
C:e!=0
D:~e
参考答案:A
[单选题]对于for( 表达式1;;表达式3)可理解为( )
A:for(表达式1;0;表达式3)
B:for(表达式1;1;表达式3)
C:for(表达式1;表达式1;表达式3)
D:for(表达式1;表达式3;表达式3)
参考答案:B
[单选题]对于下面程序输出结果的判断中,正确的是( )。
#include
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); }
A:输出31,61,91
B:输出30,60,90,
C:不输出任何内容
D:输出29,59,89
参考答案:C
[单选题]下面程序的执行结果是( )。
#include
#include
void main()
{char x[]="1234567",y[12]="1234567";
printf("%d,%d,%d",strlen(x),sizeof(x),sizeof(y));}
A:7,7,7
B:7,8,8
C:7,8,12
D:8,8,8
参考答案:C
[单选
题]下列运算符的操作数必须是整型的是( )
A:/
B:!
C:%
D:=
参考答案:C
[单选题]可用于C语言用户标识符的是( )
A:void,define
B:2c,DO
C:For,-abc
D:as_b3,_123
参考答案:D
[单选题]函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是( )
A:3
B:4
C:5
D:6
参考答案:A
[单选题]设int a=0,b=1;,下列语句错误的是( )
A:a=b=10;
B:a++;
C:b+=a;
D:(a+b)++;
参考答案:D
[单选题]能正确表达数学关系式0≤x<20的C语言表达式是( )
A:0<=x<20
B:x>=0||x<20
C:x>=0&&x<20
D:!(x<=0)&&x<20
参考答案:C
[单选题]正确的C语言字符常量是( )
A:‘’
B:‘65’
C:“A”
D:‘/n’
参考答案:A
[单选题]关于函数,下列叙述正确的是( )
A:一个函数中可以定义其它的函数
B:C程序总是从main()函数开始执行
C:main()函数也可以被其它函数调用
D:一个C程序可以有多个main()函数
参考答案:B
第四次作业
[论述题]
1. 设float a,b,c;,若a、b和c分别为三角形的三条边长,它们"能构成等边三角形”的逻辑表达式是_____(a+b=c)&&(a+c=b)&&(b+c>a)_______。
2. 设int i;float f=3.14;,执行i=(int)f;后,变量f的值是_____3.14_______。
3. 设char s[]=”t'NameAddress
”;,s的长度是____15________。
4.设int x=1,y=3,z;,执行z=x>y?++x:y++;后,z的值是____3________。
5. 设int m=3;float n=12.6;char ch='a';,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a<回车换行>,则scanf语句应是___scanf("%d,%f%c”,&m,&n,&ch);_________。
6. 若定义函数时类型缺省,则该函数默认的类型是____extern________。
7. 设int a[5]={l,3,5,7,9},*p=&a[2];,则++(*p)的值是___6____
8.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main()
{float x[1000],sum=0.0,ave,a;
int n=0,i;
printf("Enter mark:\n”);scanf("%f”,&a);
while((1)a>=0)
{sum___(2)_ sum+a ___;x[n]=a;n++;
scanf("%f”,&a);}
ave=____(3)sum/n ___;
printf("Output:\n”);
printf("ave=%f\n”,ave);
for(i=0;i
9.下列程序的功能是在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。请填空:
#include "stdio.h"
void main()
{int a[10],i,max;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for( (1)i=1,max=0或max=i=0 i<10;i++)
if(a[i]>a[max]) (2) max=i;
printf("最大值为
:%d ,下标是:%d", (3) a[max] ,max);
}
10、下列程序的功能是:从键盘输入10数,找出其中的素数并按降序输出这些素数。请根据给定的程序和程序的功能完善该程序。(每空2分,共6分)。
#include
#include
int f(int x)
{int i;
for(i=2;i<=sqrt(x);i++)
if(x%i==0) return 0;
(1)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( (2)f(a[i]) ) n++;
else a[i]=0;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if( (3)a[j]
printf("共有%d个素数,它们是:",n);
for(i=0;i<9;i++)
if(a[i]!=0) printf("%d ",a[i]);
}
11. 从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。
#define N 10
struct student
{
char name [20];
char sex;
int score;
} stu[N];
void main( )
{
int i;
float aver,sum=0;
for(i=0;i
sum=sum+_(2) stu[i].score ________; /*第二空*/
}
aver=_(3)_ sum /N_________; /*第三空*/
printf("aver=%6. 2f
”,aver);
}
12. 从键盘输入一串字符(以"?”作为结束标志),保存到文本文件text. txt中。
#include "stdio.h”
void main()
{
FILE (1)__*fp_____; /*第一空*/
char ch;
if( (fp=fopen ("text. txt'',_(2)_"w "_____) )==NULL) exit(0); /*第二空*/
while( (ch=getchar( ))!='?') fputc(ch,_(3)__fp______); /*第三空*/
fclose(fp);
}
13. 用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。
递归公式如下:
age(n)=
int age(int n)
{
if (n==1) return (__(1)__10____); /*第一空*/
else return(_(2)_age(n-1)+2_______); /*第二空*/
}
void main()
{
printf(‘‘%d
”,_(3)__age(5)______); /*第三空*/
}
参考答案:
1. (a+b=c)&&(a+c=b)&&(b+c>a)_。
2. _____3.14_______。
3. ____15________。
4. ____3________。
5. ___scanf("%d,%f%c”,&m,&n,&ch);_________。
6. ____extern________。
7. ___6____
8.(1)a>=0
(2)=sum+a ___
_(3)sum/n ___;
9. (1)i=1,max=0或max=i=0 (2) max=i;
(3) a[max]
10、
(1)return 1;
(2)f(a[i] (3)a[j]
11. _(1)_ &stu[i].score, &stu[i].sex, stu[i].name
(2)_ stu[i].score ________;
(3)__ sum /N_________; /*第三空*/
12.(1)__*fp____ (2)_"w "_____(3)__fp_____
13. (1)___10___(2)__age(n-1)+2____(3)___age(5)_____
第五次作业
[论述题]
1、下
列函数的功能是什么
int fun(char *x)
{char *y=x;
while(*y++);
return y-x-1;
}
2、在下列程序中,循环结构执行结束后,i的值是多少,循环次数是多少?i--执行的次数是多少?
#include
void main()
{ int i=100, s=0;
while(i--)s+=i;
printf("%d
”,s)
3、在下列程序中,函数f的功能是什么? 该程序的运行结果是多少?
#include "stdio.h"
int fun(int num)
{int k=1;
do
{k*=num%10;
num/=10;
}while(num);
return k;
}
void main()
{int x=651,y=123;
printf("%d,%d",fun(x),fun(y));
}
4、在下列程序中,函数p的功能是什么? 该程序的运行结果是多少?
#include "stdio.h"
void sort(int x[ ],int n)
{int i,j,k,t;
for(i=0;i
{k=i;
for(j=i+1;j
if(x[k]>x[j])k=j;
if(i!=k)
{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;
sort(a,10);
for(i=0;i<10;i++)
printf("%10d",a[i]);
}
5.有如下程序
#include
int fun(int x)
{ int p;
if(x= =0 || x= =1) return 3;
else p=x-fun(x-2);
return p;
}
void main()
{ printf("
%d”,fun(9));
}
该程序的输出结果是多少?
6.下列程序的运行结果是多少?
#include
void main()
{int color=2;
switch(color)
{
case 1:printf("red
");break;
case 2:printf("yellow
");
case 3:printf("blue
");
}
}
7. 下列程序的运行结果是多少?
#include
void main()
{int m,n;
for(m=1;m<=3;m++)
{for(n=1;n<=2*m-1;n++)
printf("*");
printf("
");
}
}
8. 下列程序的运行结果是多少?
#include
void main()
{int i=5;
do
{switch(i%2)
{case 4:i--;break;
case 6:i--;continue;
}
i--;i--;
printf("%d,",i);
}while(i>0);
}
9.下面程序的输出结果是多少?
#include
void main()
{int a=10,y=0;
do{a+=2;y+=a;
if(y>50) break;
}while(a=14);
printf("a=%d,y=%d
",a,y);
}
10. 下面程序的输出结果是多少?
#include
void main()
{int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
for(i=0;i<=1;i++)
{for (j=0;j<=2;j++)
{ printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
}
}
参考答案:
1.函数的功能是求字符串的长度
2.I的值为-1,循环次数是100,i--执行的次数为101
3.函数f的功能是求任意整数的各位数字之积, 该程序的运行结果是15,0
4.函数p的功能是对n个整数排序,该程序的运行结果是11 30 34 50 67 75 89 102 125 145
5.该程序的输出结果是7
6. 该程序的输出结果是
yellow
blue
7. 该程序的输出结果是
*
***
*****
8. 该程序的
输出结果是
3,1,-1
9. 该程序的输出结果是a=16,y=60
10. 该程序的输出结果是1 2 3 4 5 6
第六次作业
[论述题]
1.程序的功能是从键盘上任意输入一个正整数,求各位数字之和。请用模块化方法改写下列程序,功能不变。
#include "stdio.h”
void main()
{int n;
int r,s=0;
scanf("%d”,&n);
do{r=n%10;
s+=r; n=n/10;
}while(n>0);
printf("%d”, s);
}
2.
在下列程序中,fun函数为一个递归函数,请将程序中的fun函数改为非递归函数,保持功能不变。
#include "stdio.h"
long fun(int n)
{ if(n==1)
return 1;
else
return n*fun(n-1);
}
void main()
{int n;
printf("请输入n的值:");
scanf("%d",&n);
printf("%d!=%ld
",n,fun(n));
}
3、 编一程序求:1+(1+2)+(1+2+3)+……+(1+2+3+……+10)。
4、 找出一个3行4列的二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。可能有几个鞍点也可能一个都没有。
5. 编一程序找出所有三位数的"水仙花数”并在屏幕上输出。其中"水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一"水仙花数”,因为153=13+53+33。
6、编一函数stringength(char *s)求字符串长度。在些一程序测试其功能(要求不能使用字符串连接函数strlen())
7、输入一个3X6的二维整型数组,输出其中最大值、最小值及其所在的行列下标。
8、输入10个整数,将其中最大数和最后一个数交换,最小数与第1个数交换。
9、编写程序打印下列图形
*
***
*****
*******
*********
10. 编写一个程序:从键盘上华氏温度计算对应的摄氏温度,其计算公式为:
其中cels表示华氏温度,fas表示华氏温度。要求有输入输出提示,并计算结果保留小数点后3位.
11. 从键盘上输入x ,依据下列函数关系计算函数值。要求有输入输出提示,且计算结果精度为5。
参考答案:
1.参考答案
#include "stdio.h”
int add(int n)
{int r,s=0;
do{r=n%10;
s+=r; n=n/10;
}while(n>0);
return(s);
}
void main()
{int m;
scanf("%d”,&m);
printf("%d”, add(m));
}
2、参考答案
#include "stdio.h"
#include "string.h"
viod f( )
{int n;
char ch[10];
gets(ch);
n=strlen(ch);
for(i=n-1;i>=0;i--)
printf("%c",ch[i]);
}
main() {f();}
3、参考答案
#include "stdio.h"
main()
{
int i,s=0,t=0;
for(i=1;i<=10;i++)
{t+=i;s+=t;}
printf("%d",s);
}
4、参考答
案
int an(int x[3][4], int n)
{int i,j;
j=max(x,n);
i=min(x,j);
if(i==n) {printf("第%d行第%d列的%d”,n,j,x[i][j]);
return 1;
}
else return 0;
}
int max(int x[3][4], int n)
{int i,k;
for(i=1,k=0;i<4;i++)
if(x[n][k] k=i;
return k;
}
int min(int x[3][4], int j)
{int i,k;
for(i=1,k=0;i<3;i++)
if(x[k][j]>x[i][j]) k=i;
return k;}
main()
{ int a[3][4],i,j,x=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d”,&a[i][j]);
for(i=0;i<3;i++)
x=x+an(a,i);
if(x==0) printf("没有找到鞍点”);
}
5.
#include "stdio.h"
main( )
{int n,i, ,r,s=0;
for(i=100;i<1000;i++)
{ s=0; n=i;
while(n!=0)/*
{r=n%10;
s=s+r*r*r;
n=n/10; }
if(s= =i)printf("%5d",i);
}
}
6、参考答案
#include "stdio.h"
stringength(char *s)
{ char *t=s;
while (*s) ++s;
return(s-t);
}
main()
{char *p;
gets(p);
printf("%d",stringength(p));
}
7、参考答案
#include
main()
{int a[3][6],*p=a,I,j;
int d,d1=0,d2=0,x,x1=0,x2=0;
for(I=0;I<3;I++)
for(j=0;j<6;j++)
{scanf("%d",p);
if (I= =0&&j= =0) {d=*p;x=*p;}
if (d<*p) {d=*p;d1=I;d2=j;}
else if (x>*p) {x=*p;x1=I;x2=j;}
p++;
}
printf("d=%d,d1=%d,d2=%d
",d,d1,d2);
printf("x=5d,x1=%d,x2=%d
",x,x1,x2);
}
8、参考答案
#include
main()
{int a[10],*p=a,I,d,d1=0,x,x1=0;
for(I=0;I<10;I++,p++)
{scanf("%d",p);
if (I= =0) {d=*p;x=*p;}
if (d<*p) {d=*p;d1=I;}
else if (x>*p) {x=*p;x1=I;}
}
p--;
a[d1]=*p;*p=d;
a[x1]=*(p-9);*(p-9)=x;
for(I=9;I>=0;I--,p--)
printf("%d,",*p);
}
9、参考答案
#include
main()
{int I,j,k;
for (I=1;I<=5;I++)
{for (j=1;j<=20-I;j++) printf(" ");
for (k=1;k<=2*I-1;k++) printf("*");
printf("
");
}
}
10. #include"stdio.h"
void main()
{float fas,cels;
printf("请输入华氏温度:");
scanf("%f",&fas);
cels=5*(fas-32)/9;
printf("fas=%7.3f,cels=%7.3f
",fas,cels);
}
11. #include"stdio.h"
#include "math.h"
void main()
{float x,y;
printf("请输入x的值:");
scanf("%f",&x);
y=5*x*x*x*x+3*fabs(x)-1;
printf("f(%7.3f)=%7.3f
",x,y);
}