永发信息网

10道编程解答题求助?

答案:4  悬赏:0  手机版
解决时间 2021-04-20 07:47
26.设char ch,str[4],*strp;,则下列赋值语句正确的是( )。
A)ch="CBA";
B)str="CBA";
C)strp="CBA";
D)*strp="CBA";
27.下列程序片段的输出结果是( )。

printf("%d\n",strlen("ATS\n0l2\2\\"));
A)l1
B)10
C)9
D)8
28.下列程序的运行结果是( )。

main()

{int a=4,y;

y=fn(a,++a);

printf(“%d”,y);}

int fn(x,c)

{int b;

if(x<c)b=1;

else if(x==c)b=0;

else b=-1 ;

return(b);

}
A)4
B)-1
C)1
D)0
29.下面程序的运行结果是( )。

#include "stdio.h"

#include "string.h"

fun(char *w,int n)

{

char t,*s1,*s2;

s1=w;s2=w+n-1;

while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}

}

main()

{

char *p;

p="1234567";

fun(p,strlen(p));

puts(p);

}
A)7654321
B)1714171
C)1711717
D)7177171
30.函数f定义如下,执行语句“m=f(5);”后,m的值应为( )。

int f(int k)

{ if(k==0||k==1) return 1;

else return f(k-1)+f(k-2);

}
A)3
B)8
C)5
D)13
31.对于以下递归函数f,调用f (3)的返回值是( )。

int f(int x)

{ return ((x<=0)? x: f(x-1)+f(x-2));

}
A)-1
B)0
C)1
D)-2
32.以下程序的输出结果是( )。

#include "stdio.h"

void fun(int *p)

{

int a=10;

p=&a;

++a;

}

void main()

{

int a=5;

fun(&a);

printf("%d\n",a);

}
A)5
B)6
C)10
D)11
33.如果要限制一个变量只能被本程序文件使用,必须通过( )来实现。
A)静态内部变量
B)外部变量声明
C)静态外部变量
D)局部变量声明
34.函数f定义如下,执行语句“sum=f(4)+f(2);”后,sum的值应为( )。

int f(int m)

{ static int i=0; int s=0;

for(;i<=m;i++) s+=i; return s;

}
A)13
B)16
C)10
D)8
35.以下程序的输出结果是( )。

#include <stdio.h>

#define H1 5

#define H2 H1+1

#define H3 H2*H2/2

void main()

{

int s=0,k=H3;

while(k--)s++;

printf("%d\n",s);

}
A)18
B)19
C)10
D)宏定义有错,不能编译
36.在说明 const char *ptr; 中,ptr是( )。
A)指向字符常量的指针
B)指向字符的常量指针
C)指向字符串常量的指针
D)指向字符串的常量指针
最佳答案

26题中,选C


A项ch表示的是单个字符,把字符串赋给它是错的,


B项str是数组名,代表数组首地址,是个常量,不可把串直接付给它,


C项是正确的表示方法,


D项*strp表示一个元素,同样不可将串赋值给它,


27题中,选C


ATS\n0l2\2\\ ——————A ,T ,S ,\n 各表示一个字符,\2表示一个八进制数,为一个字符,\\表示一个反斜杠字符,0 ,l ,2各表示一个字符,所以总共9个字符;


28题中,选C


main函数中调用fn(a,++a)既是调用fn(4,5),4<5,故返回b值为1,


29题中,选A


while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}函数体功能是判别s1,s2大小,strlen(p)传递给n等于7,把实参p传递给w,既是s1=p,s2=w+n-1=p+6,即s2=7,所以,由给出的条件表达式s1<s2可以实现一一交换功能,所以最后p按逆序输出,7654321;


30题中,选B


当k=5时,调用函数f(5), 这里是个递归调用,f(5)=f(4)+f(3); 而f(4)=f(3)+f(2) ;f(3)=f(2)+f(1);


f(2)=f(1)+f(0);当k等于1或0时,函数返回1,所以


f(5)=f(4)+f(3)=f(3)+f(2)+f(3)=2(f(2)+f(1))+f(2)=3f(2)+2f(1)=3(f(1)+f(0))+2f(1)=8;答案为8,


31题中,选D


同上,递归调用,x=3时,函数先返回 f(3-1)+f(3-2)继续调用, f(2-1)+f(2-2)+ f(1-1)+


f(1-2)=f(1-1)+f(1-2)+f(2-2)+ f(1-1)+f(1-2)=0+(-1)+0+0+(-1)=-2;故选D;


32题中,选C


函数是地址传递,形参改变影响实参的值,而p=&a;在 ++a;之前,所以先把10地址传给了p,故,实参a也变为10,故选C;


33题中,选A


要限制一个变量只能被本程序文件使用须通过设置静态内部变量来实现。所以选A;


34题中,选C


第一次执行完f(4)后,for循环过后得到i=4,s递加等于10,由于i为静态变量,保留上次操作的值,所以i值仍为4,第二个f(2)中,for循环条件4<=2不成立,故不执行,所以只执行前一个循环,所以,


sum的值应为10;


35题中,选C


由k=H3=H2*H2/2=H1+1*H1+1/2=5+1*5+1/2=10;而while(k--)s++;中,循环执行了10次,故s值自增到10,故选C


36题中,选C


const char *ptr中,ptr是一个指向字符串常量的指针,所以选C.



所以,答案依次为,CCCAB--------DCACCC

全部回答

C C D (D) B D A( D) A C (C)

带()的三个是我不太确定的,别的应该都是对的

26.C 27.C 28.C
26.B__27.不知道__28.C__29.貌似变成无限循环了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一对身高相差很大的夫妻,请用一句话对他们进
问一个关于命题的问题
怎么定制三级学习计划
爱国主义的诗词鲁迅,鲁迅的名言,成全一棵树
谁有天龙八部666终身免费财富卡
失业金9月2号办理的人家说每个月25号发是不是
地下城与勇士到啦51级怎样升级才快?
跪求 剑侠情缘3藏剑 五毒 唐门 明教 的门派介
我用手机开通会员手机会一直支付吗?
人造砂岩的施工方案
生活无聊怎么办
黄钻贵族进来
哪本月刊杂志好?
转角,转角。为什么还是找不到幸福?
三星的怎样啊?
推荐资讯
遇到一些事情,我要怎么办好~
为什么关了DNF的TP 还会掉线?
眼睛周围的皱纹
谜语 谁有 高清的《欠我十万零五千》迅雷下载
心理受到万分折磨的人该如何发泄
假如有如果经典语录,生命不是安排而是追求是
坚持自己的想法,不知道有没有什么好的名人名
我是阴历79年7月22的,想占卜下命运和婚姻
厂区内的设备用房都算是厂房吗?
飞达机电修理部地址有知道的么?有点事想过去
美瘦健康生活馆地址在哪,我要去那里办事
一句话标点不同意思,一个标点符号就是一句话
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?