c语言习题问题

C语言问题_百度知道
=(m-1)&#47:(1)编写求最大值子函数max、总和,程序就必须输出那个物体的体积和表面积,为什么用do…while语句会比较好,为什么形参中的体积和表面积必须用指针; gets(string)、圆柱体……、参数、2或者3时;#include &2:float max(float *p;, int n)float min(float *p,如何改写,它们都有体积和表面积,并且对主函数和子函数中的变量,要求求取哪个物体的体积和表面积; inverse(string),为了防止误输入。(2)主函数中子函数的声明部分也要改写,将子函数inverse中的形参“char str[]”改写为指针类型“char *p”,传递的实参是什么,函数调用部分要不要改写?)。(2)编写球体子函数、圆柱体子函数(思考一下.c;input string.c;
str[j]=t,它们函数头如下所示,j、立方体子函数,读懂该程序的功能、以及执行语句做出注释;i&lt,分别求出数组的最大值:&quot?):%s\
t=str[i];输入3时,比如球体。(思考一下。(3)在主函数中调用三个子函数(思考一下,输出球体的体积和表面积,调用子函数的时候,程序名称命名为test5-1, int n)(2)在主函数main中定义一个一维数组a(数组元素的个数由你来定),传递的实参是什么。(思考一下; printf(&quot.c复制一份.h&gt.c,完成如下任务,输入1时;}void inverse(char str[]){
int i;输入2时,输出立方体的体积和表面积; }}第四部分将test5-3,子函数中相应的内容也要进行改写(思考一下,输出圆柱体的体积和表面积;i++) {
j=m-1-i.c,string),在主函数中要用do…while语句实现纠错功能、立方体,重命名为test5-4?)第二部分编写程序; printf(&quot。(4)在输入1,完成如下任务第一部分编写程序、求和子函数sum。(思考一下,它们的功能是返回各自的体积和表面积,并且输入结果、最小值、求最小值子函数min,并且用注释的形式说明子函数的功能:#include &lt,程序名称命名为test5-2; char string[100]; m=strlen(str););string:(1)在test5-4;void main(){ void inverse(char str[]),调用函数时;n&quot,m,调用上述子函数.h&gt.c中:(1)有很多物体; for(i=0?)第三部分将下面一段程序存储为test5-3?), int n)float sum(float *p;
str[i]=str[j];inverse string
n”),z=3: printf(“**\b;for(i=2;则执行下列语句之后;i&gt,i和sum的值是多少,c=1,y=2: b--;case 2,a?if(a=0)b-=1: printf(”#”): printf(”*”);n”); case 2,b=2. int x=0;9; default,y=1;
}case 1.0。float a. 以下语句有错误吗. int a=0?循环之后;c++)c=c*i;i&lt,指出错误. 下列语句执行之后. 以下循环体执行的次数是多少,sum=0;break?如果不正确. 以下循环体内的语句被执行了几次;break?int i=3;}7;switch(a){case 1;则下列语句的输出内容是什么?每次循环输出的值是什么. int x=1?5: printf(“&”):2){ case 1;0: switch(y)
case 0;则表达式:a=a+b,并且给出改正的方法;
sum+=i1,i--),b=2;8;则表达式;scanf(“%f”: printf(“*&#92,b的值是多少?}6;0)?int a=1;for(i=1;switch(a&gt?1: printf(“@”);default:b=a+b?int i?switch(x){case 0,&a);=3!i-1的值是多少;do{
i-=1;}while(i&}3?2.0;4;
case 1;)printf(”%d”,b的值是多少. 下列switch结构正确吗. int i=-1!(z==x+y)的值是真还是假
提问者采纳
string:&/}3;i&n&inverse string: printf(“*&#92.两次 输出2; for(i=0;2;input string.0,string); gets(string);=(m-1)/获取输入字符串 inverse(string): printf(“**&#92.h&}void inverse(char str[]){ char t.a=3.没错8;),将输入字符串倒序输出)#include &lt,j; char string[100],b=16.h&n”);
t=str[i]1; m=strlen(str).b=1;.case 2; break,19;/#include &
str[j]=t.循环次数3;倒序字符串 printf(&quot,i=1,sum=3 第三部分(程序作用;// void main(){ void inverse(char str[]).0:%s\scanf(“%f”;i++) {
str[i]=str[j]:break,&a);n”).假5; printf(&quot,m;4;switch(a){case 1.-12.#7
#include &stdio.h&#include &stdlib.h&#include &string.h&typedef struct putout{ //体积 //面积}void round(outparam *ou){ ou-&area=100; ou-&volume=100;}void cube(outparam *ou){ ou-&area=300; ou-&volume=300;}void column(outparam *ou){ ou-&area=500; ou-&volume=500;}int main(){
char getc[3];
char str[]=&球体&; memset(&outstr,0,sizeof(outstr));do {
printf(&输入1,2,3\n&);
gets(getc);
putin=atol(getc);
switch(putin)
round(&outstr);
memcpy(str,&球体&,sizeof(&球体&));
cube(&outstr);
memcpy(str,&立方体&,sizeof(&立方体&));
column(&outstr);
memcpy(str,&圆柱体&,sizeof(&圆柱体&));
memset(&outstr,0,sizeof(outstr));
memcpy(str,&输入错误&,sizeof(&输入错误&));
printf(&%s\n%s %d\n%s %d\n&,str,&体积&,outstr.volume,&表面积&,outstr.area); }while(putin&=1 &&
putin&3); return 0;}
其他类似问题
为您推荐:
您可能关注的推广回答者:
c语言的相关知识
其他4条回答
下面是我自己写的,帮我看下有哪些问题然后帮我解决吧,(给出程序代码哦)给你一个程序作为参考,求某一天是这一年的第几天 只要把当前日期是第几天
第9题:循环次数3,i=0,sum=3
第一部分我说下思路:
(1)应该没问题
(2)思考一下,为什么形参中的体积和表面积必须用指针?因为函数只能返回单个值,要传回多个值,用指针比较方便。
(3)这个最好用指向函数的指针作为函数参数来实现
(4)用do while 可以不限制次数,而且是先执行后判断,也就是先输入后判断,不符合条件就继续循环。这里楼上的又有问题了,假如输入错误,楼上的还是会执行,所以有问题,而且楼上的不符合第(2)条。
第二部分:调用子函数的时候,传递的实参是数组首地址
#include &stdio.h&
float max(float *p, int n)
for(i=1,m=*p;i&n;i++)
if(m&*(p+i)) m=*(p+i);
float min(float *p, int n)
for(i=1,m=*p;i&n;i++...
这个问题建议你写在纸上,然后拿着它对着天拜3拜,然后烧掉,然后睡觉,会有&人&在梦里为你解答。记得写上你的IP地址(写MAX地址更好!)!望采纳!
给你一个程序作为参考,求某一天是这一年的第几天
只要把当前日期是第几天,生日是第几天求出来。
那么减一下,就是离生日还有多少天。
至于几岁,就是直接比较当前日期和出生日期,就可以了。
#include &stdio.h&
int main()
int month[13] = { 0, 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
int special_
scanf(&%d%d%d&, &y, &m, &d);
if(y % 400 == 0 || y % 100 != 0 && y % 4 == 0) {
month[2] = 29;
if(m &= 1 && m &= 12 && d &= 1 && d &= month[m]) {
for(i = 1; i & ++i) {
day += month[i];
printf(&%d\n&, day);
printf(&data error&...
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您还未登陆,请登录后操作!
C语言问题????、
============================================================================
: cunixsystem.c
: cuikexiang
: Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
#include &stdio.h&
#include &stdlib.h&
int main(void)
typedef enum weekd{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}
week today=T
============================================================================
: cunixsystem.c
: cuikexiang
: Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
#include &stdio.h&
#include &stdlib.h&
int main(void)
typedef enum weekd{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}
week today=T
week day=(today+160)%7;
switch(day)
printf("Sunday");
printf("Monday");
printf("Tuesday");
printf("Wednesday");
printf("Thursday");
printf("Friday");
printf("Saturday");
printf("\n");
return EXIT_SUCCESS;
<img class="piczoom mpic" alt="/*
============================================================================
: cunixsystem.c
: cuikexiang
: Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
int main(void)
typedef enum weekd{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}
week today=T
week day=(today+160)%7;
switch(day)
printf("Sunday");
printf("Monday");
printf("Tuesday");
printf("Wednesday");
printf("Thursday");
printf("Friday");
printf("Saturday");
printf("\n");
return EXIT_SUCCESS;
" src="/fimg//44/10/43/..png_240.jpg" data-artzoom-show="/fimg//44/10/43/..png_516.jpg" data-artzoom-source="/fimg//44/10/43/..png_516.jpg" />
大家还关注
一道C编程问题,请帮我看看到底哪里错了?...C语言问题_百度知道
k&gt:void jsValue(int m,int k:将大于整数m且紧靠m的k个素数存入数组xx传回;} }}我不明白最后一句if(i==j){xx[s++]=i;i的吗.dat中,int xx[]);
if(i==j){xx[s++]=i?另外给我推荐有详细的C语言学习资料网站,23;k--.现在书本上知识只是部分上了解:19;i++) {
for(j=2;j++)
if(i%j==0)break,该函数的功能是,29。
例如。答案是; for(i=m+1,j。
部分源程序存在文件prog1。
最后调用函数writeDat()读取10组数据,s=0,37,int xx[]){i,因为我马上就要考三级C了,31,分别得出结果且把结果输出到文件0.c中,int k南开的一个题目。
请勿改动主函数main()和写函数writeDat()的内容:若输入17 5 则应输出,比较容易理解的,但看一些例题还有很多的不理解;j&k--,那么i==j不是肯定不成立的吗;}上面不是有条件j&lt:请编写一个函数jsValue(int m
o 小李飞刀再飞刀,谢谢.那应该是在哪加呢,但你所说的加上{}?可以的话追加30分?可不可以直接用这些语句给我举个例子:明白了
提问者采纳
if最好都要加上{}啊。这里for循环没有用大括号括起来;如果i能够整除j;&#47,int xx[]) {
for(i=m+1;} 这条语句是在循环体外的啊,楼主写程序可不要这样啊,s=0。
xx[s++]=i,无法再执行循环体可见好的编程习惯可以减少代码的误读率;j&lt,如果是因为(i%j == 0)而退出循环体,那么i就不是素数。也就是 if(i%j == 0)break。 所以; 而if(i==j){xx[s++]=i。void jsValue(int m,跳出循环之后;i; 但是如果很不幸,j;k--;j++)
{&#47,那么最终j就一直在那里++,不然终有一天会被自己给晕死的,此时j还肯定小于i; /k&gt,for,一直都没有i被j整除的情况,直到它等于i;&#47,int k,此时不就i==j成立了嘛;i++)
for(j=2。 再啰嗦一下;
k--;0,默认的循环体内的语句就是紧跟其后的一条,i==j是false的,也就不能被保存进xx里了
if(i==j)//这条语句实际上是在循环体外面的。如果给for循环加上“{}”你就不会看错了;它这里是省略掉了大括号
if(i%j==0)break
提问者评价
嗯.明白了..非常感谢!谢谢你的提醒!
其他类似问题
为您推荐:
您可能关注的推广回答者:
c语言的相关知识
其他2条回答
最后的一个if可以看做是一 个if嵌套了一个for语句 ~!!xx[]是一 个一维数组而那 个s++和之后的看做是一个for 语句就ok 了~!!~
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言错误处理
当前位置:
>> C语言错误处理
C语言错误处理
C语言错误处理实例代码教程 -因此C语言编程错误处理,但作为一个系统编程语言不提供直接支持,它为您提供了访问返回值的形式在较低的水平。
因此C语言编程错误处理,但作为一个系统编程语言不提供直接支持,它为您提供了访问返回值的形式在较低的水平。甚至是Unix的C函数调用返回-1或NULL中的任何错误的情况下,设置一个错误代码errno是集全局变量,并表示任何函数调用过程中发生错误。你可以找到各种&error.h&头文件定义的错误代码。
因此,一个C程序员可以检查返回值,根据返回值,可以采取适当的行动。作为一个很好的做法,开发商应在程序初始化的时候,errno设置为0。值为0表明,在程序中没有错误。
errno, perror() 和strerror()
C编程语言提供了perror()函数,并于strerror()函数可用于显示文本消息与errno。
perror()函数显示的字符串传递给它,然后由一个冒号,一个空格,然后目前的errno值的文字表述。
strerror()函数,该函数返回一个指针,指向目前的errno值的文字表述。
让我们尝试模拟错误情况,并试图打开一个文件,该文件不存在。在这里,我使用的功能显示使用,但打印你的错误,你可以使用一种或多种方式。第二个很重要的一点需要注意的是,你应该使用stderr文件流输出所有的错误。
#include &stdio.h&
#include &errno.h&
#include &string.h&
int main ()
pf = fopen ("unexist.txt", "rb");
if (pf == NULL)
fprintf(stderr, "Value of errno: %d -by
\n", errno);
perror("Error printed by perror");
fprintf(stderr, "Error opening file: %s\n", strerror( errnum ));
fclose (pf);
上面的代码编译和执行时,它会产生以下结果:
Value of errno: 2
Error printed by perror: No such file or directory
Error opening file: No such file or directory
除以零错误
这是一个常见的问题,将任意数量的时候,程序员不检查,如果在除数为零,最后它创建了一个运行时错误。
下面的代码修复了这个检查,如果除数为零的除法运算之前:
#include &stdio.h&
#include &errno.h&
#include &string.h&
int dividend = 20;
int divisor = 0;
if( divisor == 0){
fprintf(stderr, "Division by zero! Exiting...\n");
quotient = dividend /
fprintf(stderr, "Value of quotient : %d\n", quotient );
上面的代码编译和执行时,它会产生以下结果:
Division by zero! Exiting...
程序退出状态
值EXIT_SUCCESS在编程的情况下退出,这是一个普遍的做法是成功后的操作。这里EXIT_SUCCESS是一个宏,它被定义为0。
如果你有一个错误在你的程序中,你出来的条件,那么你就应该退出状态EXIT_FAILURE,被定义为-1。因此,让我们写上面的程序如下:
#include &errno.h&
#include &string.h&
int dividend = 20;
int divisor = 5;
if( divisor == 0){
fprintf(stderr, "Division by zero! Exiting...\n");
exit(EXIT_FAILURE);
quotient = dividend /
fprintf(stderr, "Value of quotient : %d\n", quotient );
exit(EXIT_SUCCESS);
上面的代码编译和执行时,它会产生以下结果:
Value of quotient : 4C语言题目集锦_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
C语言题目集锦
C&#8203;语&#8203;言&#8203;练&#8203;习&#8203;题&#8203;,&#8203;希&#8203;望&#8203;可&#8203;以&#8203;帮&#8203;助&#8203;大&#8203;家&#8203;。
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢

我要回帖

更多关于 c语言习题 的文章

 

随机推荐