
计算机二级C语言问题
19)若变量已正确定义,有以下程序段i=0;doprintf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0B)0,1C)...
19)若变量已正确定义,有以下程序段
i=0;
do printf("%d,",i);while(i++);
printf("%d\n",i)
其输出结果是
A)0,0 B)0,1 C)1,1 D)程序进入无限循环
ps:问什么是b,难道不是无限循环吗
(24)有以下程序
#include<stdio.h>
main()
{int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++) m=m%j;
printf("%d\n",m);
}
程序的运行结果是
A)0 B)1 C)2 D)3
ps:答案是d,过程怎样的
(34)有以下程序
#include<stdio.h>
void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{int t,i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for (i=0;i<10;i++) printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是
A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,
C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,
ps:怎么读的啊
(38)有以下程序:
#include
void fun(char *t,char *s)
{
while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{
char ss[10]=”acc”,aa[10]=”bbxxyy”;
fun(ss,aa);
printf(“%s,%s\n”,ss,aa);
}
程序运行结果是
A) accxyy , bbxxyy B) acc, bbxxyy
C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy
ps;怎么就选d啦
(41)有以下程序
#include
int a=1;
int f(int c)
{static int a=2;
c=c+1;
return (a++)+c;}
main()
{ int i,k=0;
for(i=0;i<2;i++){int a=3;k+=f(a);}
k+=a;
printf(“%d\n”,k);
}
程序运行结果是
A) 14 B) 15
C) 16 D) 17
ps:问什么选a
(45)有以下程序
#include
struct tt
{int x;struct tt *y;} *p;
struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{ int i;
p=a;
for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}
}
程序的运行结果是
A)20,30, B)30,17 C)15,30, D)20,15,
ps:答案是d,问什么啊
(46)有以下程序
#include
#include
typedef struct{ char name[9];char sex; float score[2]; } STU;
STU f(STU a)
{ STU b={"Zhao",'m',85.0,90.0}; int i;
strcpy(a.name,b.name);
a. sex=b.sex;
for(i=0;i<2;i++) a.score=b.score;
return a;
}
main()
{STU c={"Qian",'f',95.0,92.0},d;
d=f(c); printf("%s,%c,%2.0f,%2.0f\n",d.name,d.sex,d.score[0],d.score[1]);
}
程序的运行结果是
A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,m,85,90 D)Zhao,f,95,92
谢谢各位给解答一下吧,好麻烦啊 展开
i=0;
do printf("%d,",i);while(i++);
printf("%d\n",i)
其输出结果是
A)0,0 B)0,1 C)1,1 D)程序进入无限循环
ps:问什么是b,难道不是无限循环吗
(24)有以下程序
#include<stdio.h>
main()
{int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++) m=m%j;
printf("%d\n",m);
}
程序的运行结果是
A)0 B)1 C)2 D)3
ps:答案是d,过程怎样的
(34)有以下程序
#include<stdio.h>
void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{int t,i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for (i=0;i<10;i++) printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是
A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,
C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,
ps:怎么读的啊
(38)有以下程序:
#include
void fun(char *t,char *s)
{
while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{
char ss[10]=”acc”,aa[10]=”bbxxyy”;
fun(ss,aa);
printf(“%s,%s\n”,ss,aa);
}
程序运行结果是
A) accxyy , bbxxyy B) acc, bbxxyy
C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy
ps;怎么就选d啦
(41)有以下程序
#include
int a=1;
int f(int c)
{static int a=2;
c=c+1;
return (a++)+c;}
main()
{ int i,k=0;
for(i=0;i<2;i++){int a=3;k+=f(a);}
k+=a;
printf(“%d\n”,k);
}
程序运行结果是
A) 14 B) 15
C) 16 D) 17
ps:问什么选a
(45)有以下程序
#include
struct tt
{int x;struct tt *y;} *p;
struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{ int i;
p=a;
for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}
}
程序的运行结果是
A)20,30, B)30,17 C)15,30, D)20,15,
ps:答案是d,问什么啊
(46)有以下程序
#include
#include
typedef struct{ char name[9];char sex; float score[2]; } STU;
STU f(STU a)
{ STU b={"Zhao",'m',85.0,90.0}; int i;
strcpy(a.name,b.name);
a. sex=b.sex;
for(i=0;i<2;i++) a.score=b.score;
return a;
}
main()
{STU c={"Qian",'f',95.0,92.0},d;
d=f(c); printf("%s,%c,%2.0f,%2.0f\n",d.name,d.sex,d.score[0],d.score[1]);
}
程序的运行结果是
A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,m,85,90 D)Zhao,f,95,92
谢谢各位给解答一下吧,好麻烦啊 展开
4个回答
展开全部
19题:中while(i++);i++是先运算后,再自加一;++i是先自加
一,再运算!
所以,先判断while(i++)是否成立,此时i依然为0,不成
立,跳出循环,然后,i加一,所以,答案是:B。
24题:在for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j;的二重循环
中,当i为1,2时,j<=i不成立,所以m=m%j未执行。直到i==3
时,条件j<=i成立,执行m=m%j也就是m=55%3,所以,m==1。
选:B。
34题:首先读主函数,再读子函数!
数组名是该数组的首地址,所以c+4,是将指针移四个位
位置,此时c+4也就是c[4]的地址,换句话说,*(c+4)等于
c[4]。
fun(c+4,6):形参为c+4,也就是给自c[4]以后的元素从大
到小排序,而c[0],c[1],c[2],c[3]未被调用,没有参与排
续,所以答案为:1,2,3,4,9,8,7,6,5,0, 选D。
38题:首先读主函数,再读子函数!
while(*t!=0)t++;中*t!=0相当于*t!='\0'。这个循环的作
是将指针移到数组元素的末端,第一个'\0'处,也就是相
当于ss[3]的位置。
while((*t++=*s++)!=0);相当于库函数strcat(t,s)的作
用。(*t++=*s++)!=0相当于(*t++=*s++)!='\0',指针描述
过于抽象,我将其转化一下,意思相当于:
int i;
for(i=0;i<strlen(aa);i++)
ss[3+i]=aa[i];
所以,运行后ss[10]为accbbxxyy,而aa未变。
选:D。
41题:首先读主函数,再读子函数!
第一次循环:k==6;
第二次循环:k==13;
最后:k+=a相当于k=k+a;k=13+1;k=14。
注意:全局变量int a=1;在子函数中被static int a=2;
屏蔽了,所以子函数中a的初始值为2,因为static 定义
静态变量,所以,循环后a又变为3。
同样,在for(i=0;i<2;i++){int a=3;k+=f(a);}中,
f(a)里的a为3。全局变量int a=1;再次被int a=3;
屏蔽。
只有最后一个k+=a;中的a为1,没有被屏蔽!
所以,选A。
45题:是动态链表,很简单的,你看一下书就行了!在结构那一
章。
选:D。
46题:结构题,简单的结构赋值运算,STU f(STU a)的作用是将
b={"Zhao",'m',85.0,90.0}的值赋给c={"Qian",'f',95.0,92.0},
所以运算结果为:Zhao,m,85,90
选:C。
一,再运算!
所以,先判断while(i++)是否成立,此时i依然为0,不成
立,跳出循环,然后,i加一,所以,答案是:B。
24题:在for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j;的二重循环
中,当i为1,2时,j<=i不成立,所以m=m%j未执行。直到i==3
时,条件j<=i成立,执行m=m%j也就是m=55%3,所以,m==1。
选:B。
34题:首先读主函数,再读子函数!
数组名是该数组的首地址,所以c+4,是将指针移四个位
位置,此时c+4也就是c[4]的地址,换句话说,*(c+4)等于
c[4]。
fun(c+4,6):形参为c+4,也就是给自c[4]以后的元素从大
到小排序,而c[0],c[1],c[2],c[3]未被调用,没有参与排
续,所以答案为:1,2,3,4,9,8,7,6,5,0, 选D。
38题:首先读主函数,再读子函数!
while(*t!=0)t++;中*t!=0相当于*t!='\0'。这个循环的作
是将指针移到数组元素的末端,第一个'\0'处,也就是相
当于ss[3]的位置。
while((*t++=*s++)!=0);相当于库函数strcat(t,s)的作
用。(*t++=*s++)!=0相当于(*t++=*s++)!='\0',指针描述
过于抽象,我将其转化一下,意思相当于:
int i;
for(i=0;i<strlen(aa);i++)
ss[3+i]=aa[i];
所以,运行后ss[10]为accbbxxyy,而aa未变。
选:D。
41题:首先读主函数,再读子函数!
第一次循环:k==6;
第二次循环:k==13;
最后:k+=a相当于k=k+a;k=13+1;k=14。
注意:全局变量int a=1;在子函数中被static int a=2;
屏蔽了,所以子函数中a的初始值为2,因为static 定义
静态变量,所以,循环后a又变为3。
同样,在for(i=0;i<2;i++){int a=3;k+=f(a);}中,
f(a)里的a为3。全局变量int a=1;再次被int a=3;
屏蔽。
只有最后一个k+=a;中的a为1,没有被屏蔽!
所以,选A。
45题:是动态链表,很简单的,你看一下书就行了!在结构那一
章。
选:D。
46题:结构题,简单的结构赋值运算,STU f(STU a)的作用是将
b={"Zhao",'m',85.0,90.0}的值赋给c={"Qian",'f',95.0,92.0},
所以运算结果为:Zhao,m,85,90
选:C。
展开全部
19题应该是B,i++是先取i值做判断,之后执行+,所以不会是死循环;
20题答案貌似有问题;
38题是因为while(*t!=0)t++;将指针移到了最后一位,然后又接受了*s中的值;
41题 for循环里的a只被执行了一次,第二次循环时的a是全局变量a;
20题答案貌似有问题;
38题是因为while(*t!=0)t++;将指针移到了最后一位,然后又接受了*s中的值;
41题 for循环里的a只被执行了一次,第二次循环时的a是全局变量a;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
19题 while 语句一直成立 所以无限循环。
24题 i=3的时候 j=3 m被赋值为1 然后j=4 m被赋值为1
24题 i=3的时候 j=3 m被赋值为1 然后j=4 m被赋值为1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
19题同上;
24题是B.我运行过。答案错
34题是D,fun(c+4,6);//排的是后面的6个
38题错误太多
24题是B.我运行过。答案错
34题是D,fun(c+4,6);//排的是后面的6个
38题错误太多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |