计算机二级

有以下程序 include<stdio.h>intfun(chars[]){intn=0;while(*s<=’9’&&amp有以下程序#include<stdio.h>int fun(char s[]){int n=0;while(*s<=’9’&&*s>=’0’) { n=10*n+*s-‘0’;s++; }return(n);}main(){char s[10]={‘6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};printf(“%d\n”,fun(s));}程序的运行结果是

题目
有以下程序 include<stdio.h>intfun(chars[]){intn=0;while(*s<=’9’&&

有以下程序

#include<stdio.h>

int fun(char s[])

{

int n=0;

while(*s<=’9’&&*s>=’0’) { n=10*n+*s-‘0’;s++; }

return(n);

}

main()

{

char s[10]={‘6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};

printf(“%d\n”,fun(s));

}

程序的运行结果是( )。

A.9

B.61490

C.61

D.5

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序inclUdevoidfun(int*s,intn1,intn2){inti,j,t;i=n1;j=n2;while(i

有以下程序 #inclUde <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1; j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4

A.0987654321

B.4321098765

C.5678901234

D.0987651234


正确答案:C
解析: 函数fun(int*s,int n1,int n2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

第2题:

有以下程序includeintfun(chars[]){intn=0;while(*s<='9'&&*s>='0'){n=10*n+*

有以下程序 #include <stdio.h> int fun(char s[]) { int n=0; while(*s<='9'&&*s>='0') {n=10*n+*s-'0';s++;} return(n); } main() {char s[10]={'6','1','*','4','*','9','*','0','*'}; printf("%d\n",fun(s)); } 程序的运行结果是

A.9

B.61490

C.61

D.5


正确答案:C
解析: 在fun函数中,while循环的功能是:逐个取字符数组s的字符判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个10进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n的值,输出n的值为61。

第3题:

有以下程序include <stdio.h>int fun(char s[]){ int n=0;while(*s<='9'&&am

有以下程序

#include <stdio.h>

int fun(char s[])

{ int n=0;

while(*s<='9'&&*s>='0') {n=10*n+*s-'0';s++;}

return(n);

}

main()

{ char s[10]={ '6', '1', '*', '4', '*', '9', '*', '0', '*'};

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

}

程序运行的结果是

A ) 9

B ) 61490

C ) 61

D ) 5


正确答案:C

第4题:

C语言atol函数的可移植版本疑问

long atol(char *s)

{

long r=0;

int neg=0;

switch(*s)

{

case '-':

   neg=1;

   //without break

case '+':

   s++;

   break;

}

while(*s>='0'&&*s<='9')

{

   int n=*s++-'0';

   if(neg)

    n=-n;

   r=r*10+n;

}

return r;

这是C陷阱与缺陷里面的一个课后习题的程序。


C语言中头所有文件中包含的函数~ 要有函数的定义形式的,还要有参数说明,double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数 char *
C语言中头所有文件中包含的函数~ 要有函数的定义形式的,还要有参数说明,double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数 char *


希望能帮到你,别忘了采纳我的答案哦,祝你生活愉快!


C语言中头所有文件中包含的函数~ 要有函数的定义形式的,还要有参数说明,d
C语言中头所有文件中包含的函数~ 要有函数的定义形式的,还要有参数说明,double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数 char *
ouble atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数 char *

第5题:

有下列程序: #include<stdi0.h> #include<stdlib.h> intfun(intn) {int*P; p=(int*)malloc(sizeof(int)); *P=n;return*P; } voidmain( ) {inta; a=fun(10);printf("%d\n",a+fun(10));} 程序的运行结果是( )。

A.0

B.10

C.20

D.出错


正确答案:C
C。【解析】本题考查指针与函数的调用。a+fun(10)相当于fun(10)+fun(10),故结果为20。两次调用fun函数,返回值指向不同的内存单元,不会存在内存冲突的问题,也就不会走错。

第6题:

本题统计字符串str中字母a出现的次数,其中str为“(7&amp;asdfasdf873eat687al(4a”,字母a存储在字符变量c中,最后打印输出结果。

public class javal{

public static void main(String[]args){

String str="(*&amp;7asdf adf873eat687al(4a";

char c;

int sum=0;

int i=0:

do{

c= ;

if( )

sum++:

i++:

}while( );

System.out.println("sum="+sum);

}

}


正确答案:

第1处:str.charAt(i)

第2处:c= =a

第3处:i&lt;str.length

【解析】第1处获得字符串中第i个字符;第2处判断该字符是否为a;第3处为循环终止条件。


第7题:

有以下程序:include main( ){chars[] ="Yes\n/No",*ps=s;puts(ps +4); * (pa +4) =0;p

有以下程序: #include <stdio.h> main( ) { chars[] ="Yes\n/No",*ps=s; puts(ps +4); * (pa +4) =0; puts(s); }程序运行后的输出结果是( )。

A.n/No Yes /No

B./No Yes

C./NO Yes /No

D.n/No Yes


正确答案:B
解析:用puts函数输出的字符串中可以包含转义字符,遇到转义字符,自动跳过去。例如本题中ps+4指的是'/'的地址,并不是'\n'的地址,所以puts(ps+4)输出的是/NO。C规定以字符'\0',作为字符串结束标志,以便系统据此判断字符串是否结束。本题执行*(Ps+4)=0之后,再执行puts(s),就相当于输出字符串Yes后遇到结束标志。

第8题:

下列程序段不会发生二义性的是()。

A、intfun(doublep){.;}

B、intfun(floatp){.;}floatfun(floatp){.;}floatfun(unsignedp){.;}intx;intx;x=fun(0);x=fun(0);

C、intfun(inti,intj=2){.;}

D、intfun(inti=2,intj=2){.;}floatfun(inti){.;}intfun(int*p){.;}cout


参考答案:D

第9题:

有下列程序: #include<stdi0.h> voidfun(int*S,intn1,intn2) { inti,j,t; i=n1;j=n2 while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j --;} } voidmain( ) { inta[10]={1,2,3,4,5,6,7,8,9,0),k; fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf(”%d”,a[k]);printf ("\n"); } 程序的运行结果是( )。

A.0987654321

B.4321098765

C.5678901234

D.0987651234


正确答案:C
C。【解析】本题定义一个一维数组并赋初值,接着调用fun,功能是使数组中的元素逆序,当调用fun(a,0,3),将实参传递给形参实现数组a中a[0]至a[3]这4个元素逆序;同理调用fun(a,4,9)是将上步排列好的a数组中a[4]至a[9]这6个元素逆序;调用fun£a,0,9)是将数组中a[o]至a[9]这10个元素再逆序,再用printf函数输出结果为5678901234,故选项C正确。

第10题:

可以选择输入数据或空格的输入掩码是( )。 A.0B.&C.9D.?

可以选择输入数据或空格的输入掩码是( )。

A.0

B.&;

C.9

D.?


正确答案:C
暂无解析,请参考用户分享笔记

更多相关问题