问C语言的题目

16.下面程序的功能是输出以下形式的金字塔图案
*
***
*****
*******
main( )
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++) printf(" ");
for(j=1;j<=_______;j++) printf("*");
printf("\n");
}
}
在下划线处应填入的是 : 答案:2*i-1
17.有以下程序
main( )
{
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3) continue;
n++;
} while(!i);
n++;
}
printf("n=%d\n",n);
}
程序执行后的输出结果是 :
18. 以下程序段中的变量已正确定义
for(i=0;j<4;i++,i++)
for(k=1;k<3;k++); printf("*");
程序段的输出结果是( ):答案:*
19.函数定义时形参的类型
有以下函数
int fun(char *s)
{
char *t=s;
while(*t++);
return(t-s);
}
该函数的功能是:B
A)比较两个字符的大小B)计算s所指字符串占用内存字节的个数C)计算s所指字符串的长度D)将s所指字符串复制到字符串t中
20.程序中对fun函数有如下说明
void *fun();
此说明的含义是 :C
A)fun函数无返回值B)fun函数的返回值可以是任意的数据类型C)fun函数的返回值是无值型的指针类型D)指针fun指向一个函数,该函
21.有以下程序
#include <stdio.h>
int f(int x)
{
int y;
if(x==0||x==1) return (3);
y=x*x-f(x-2);
return y;
}
main()
{
int z;
z=f(3);
printf("%d\n",z);
}
程序的运行结果是 :答案:6
22.有以下程序
void f(int v , int w)
{
int t;
t=v;v=w;w=t;
}
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\n",x,y,z);
}
执行后输出结果是 :答案z;1,3,2
就是不知道为什么才想知道解释``

16.
第一行1个,第二行3个,第三行5个,第四行7个,所以第i行(2i-1)个

17.
if(i%3)就是判断i除以3的余数是否不为0
while(!i)就是判断i是否不为0
首先i=2,if为真,所以continue去到while,while为假,所以退出while执行n++,此时n变为1
然后i变成3,这时if为假,所以执行n++,此时n变为2,再判断while,while为假,所以再执行n++,此时n变成3
然后i变成4,这时if为真,所以continue去到while,while为假,所以退出while执行n++,此时n变成4
然后i变成5,不满足for循环条件,所以最后打印n=4

18.
此题实在属于过分的。。。注意第二个for循环后面跟着一个分号,所以for做的是空语句。就是说这两个for循环只会循环,不会做任何事情,最后循环跳出后打印一个星号

19.
首先让t指向s,然后判断t指向的是否是\0,是的话退出循环。不管判断结果如何,都会将t指向下一个地址。所以当循环跳出的时候,t指向的是\0再后面一个位置,所以这个函数返回的是字符串包括\0在内一共的长度,也即字符串占用的内存空间,这个数字比字符串的长度大1

20.
void* fun();这个就是一个函数申明,返回值void*,没有什么可以解释。如果你觉得是别的东西,我可以把那个的写法写出来

21.
打印z,z=f(3),所以就是求f(3)
现在f函数中x=3,所以if判断为假,执行下面的 y=3*3-f(1)=9-f(1)
所以求f(1),现在f函数中x=1,所以if判断为真,返回3
所以f(3)返回9-3=6,所以最后打印6

22.
f函数的参数是int,所以传进去的参数会被复制一份再传进去,所以f做的一切对于x,y,z不会有任何影响,所以x,y,z保持一开始的值,就是1,3,2
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-02-11
答案都给了。。该不是要每个都解释一下吧?

c语言问题求解!!!谢谢!!!
2、字符串长度问题。字符串赋初值时,系统自动给字符串分配一个空间存储‘\\0’字符结束判定字符。他是一个隐藏字符。求字符长度时,strlen求字符长度时会自动忽略‘\\0’,但sizeof不会,所以求字符长度时,sizeof() = strlen() +1;3、自增运算符的运算机制问题。自增运算符放在变量后面,如a++,...

问几道关于C语言合法字符和数字的问题
1、D \\n是转义字符,表示换行 2、C -10不是八进制或十六进制;0开头的是八进制,数值范围是0~7,所以0abc是错的;0a12同理 3、D、0开头的是八进制,数值范围是0~7,所以0f是错的;-2.5不是1~3位的整数,所以3.9E-2.5是错的,0开头的是八进制,数值范围是0~7,所以0a是错的;

一些C语言的问题,很紧急,非常感谢您能回答!!!
B) C语言的用户标识符必须由字母和数字和下划线组成,其中第一个字符只能是字母或下划线 C) C语言的关键字(保留字)不能设置为用户标识符 D) C语言允许将预定义标识符作为用户标识符,编译程序不会给出出错信息,但会使预定义标识符失去意义 4.在C语言的语法规则中,下列字符串中哪些不是C的关...

c语言问题
float c,d;char c1,c2;a=61;b=62;c=31.5;d=-68.87;c1='a';c2='A';printf("\\n");printf("a=%d,b=%d\\n",a,b);printf("c=%f,d=%f\\n",c,d);printf("c=%e,d=%e\\n",c,d);printf("c1=%c,%c\\n",c1,c2);} \/\/ a=61,b=62 c=31.5,d=-68.870003 c=3.15e...

C语言问题
A:p1=&m;p2=&p1 \/\/错误。少分号;p2=&p1类型不匹配。B:p1=&m;p2=&n;*p1=*p2;\/\/正确。*p1=*p2;表示将n值(不确定)赋给m。C:p1=&m;p2=p1;\/\/正确。D:p1=&m;*p2=*p1;\/\/错误。p2没有指向任何对象。

c语言问题
d答案不懂 这个选B,c是字符型变量,p2是指针,字符赋值给指针这肯定不行;D是指首个字符*首个字符然后赋值给变量c,例如char *s = "hello"; char *p1=s;char *p2=s;D等效于 c = 'h'*'h',应该就是h的ascii值相乘然后赋值给c,没有什么意义,但是也没问题 17).下面程序段的运行结果...

c语言问题
答案应该是C,不要把 int *ptr();搞混了,题上的是返回一个整形数据的指针函数,后者是一个 返回指针的函数 5 答案是A,呵呵,这个你好好想一下就明白了 6 答案是A 4 7 答案是23 这个你要好好看一看,特别是(&Arr+1)它和(Arr+1)区别很大,前者在地址上加了 1而后者在地址上加了1*...

问一个C语言字符输出的问题
第一个问题 这应该与printf("%s\\n",a);中的%s有关。%s的含义是输出字符串中的字符直至字符串中的空字符(字符串以'\\0‘结尾,这个'\\0'即空字符)char a[6]={'a','b','c','d','e','f'};虽然是在定义六个字母,但是printf("%s\\n",a)把它当成了字符串对待,字符串要以\\0结尾...

问一道C语言编程的问题,看下图
程序按图片中的程序照猫画虎即可。计算结果,第一天摘了156个桃子,而不是100个。include <stdio.h>int main(){int day,x1,x2;day=5;x2=1;while(day>0){x1=(x2+2)*2;x2=x1;day--;}printf("total=%d\\n",x1);return 0;} 用数学方法按天推算了一下,是156个,无误。

25.问大家一道c语言题,如图25是怎么算的,每个for都要运行吗
三个for循环重叠运行多少次,单次t++。i循环次数:4次 i取值1,2,3,4 j循环次数:2次 j取值1, 3 k循环次数:3次 k取值10,6,2 所以for循环次数4乘2乘3次数24次 答案是B

相似回答