港澳商务签证所需材料:c++语句,帮帮忙解释一下功能好吗?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 07:38:32
1.
#include<iostream.h>
#include<string.h>
void main()
{
char c1[10]="Indonesia";
char c2[10]="India";
cout<<strcmp(c1,c2)<0? c1:c2<<endl;
}
这里 strcmp(c1,c2)<0? c1:c2 我不大明白. 能否解释一下功能.

2.
#include<iostream.h>
void f1(int a[ ],int n)
{
for(int i=0;i<n/2;i++)
{int x=a[i];a[i]=a[n-1-i];a[n-1-i]=x;}
}

void main()
{
int a[]={21,22,23,24,25};
f1(a,5);
for(int i=0;i<5;i++) cout<<a[i]<<',';
cout<<endl;}

解释一下每条语句的作用和功能好吗? 我知道答案,但是不知道原理

{int x=a[i];a[i]=a[n-1-i];a[n-1-i]=x;} 这个是替换吗?
那么 f1是函数名?

3.
#include<iostream.h>
#include<string.h>
void main()
{
char s[]="esaBataD";
for(int i=strlen(s)-1;i>=0;i--)
cout<<s[i];
cout<<endl;
}

这题 for(int i=strlen(s)-1;i>=0;i--) 我不大明白. 详细的解释一下好吗?

4.
#include<iostream.h>
struct node
{
char s[10];
node *next;
};

void main()
{
node a[4]={{"China",&a[1]}, {"England",&a[2]},
{"America",&a[3]},{"---",NULL}};
for(node *p=a; p->next; p++)
cout<<p->s<<" ";
}

最候一题 请解释每跳语句的功能,和执行的过程. 麻烦您拉~~
一楼的过于简陋 呵呵 是在不能弄懂. 二偻的不错 错了一个可惜了 你说那个结果应该是8 不包括/0; 但是8其实就是现实的9 所以绝对错了~

第一题的 stcmp(c1,c2)是比较c1,c2 的大小,意思跟c1-c2一样,如果,c1>c2,则返回1,相等就返回0,反之就是-1;
第一题:
#include<iostream.h>
void f1(int a[ ],int n)
{
for(int i=0;i<n/2;i++)
{int x=a[i];a[i]=a[n-1-i];a[n-1-i]=x;} //把第一个元素与最后一个元素交换,第二个与倒数第二个交换,依此类推
}

void main()
{
int a[]={21,22,23,24,25}; //定义一个五个元素的整型数组
f1(a,5); //执行函数名为f1的函数
for(int i=0;i<5;i++) cout<<a[i]<<','; //输出数组a[i](注意,a[i]已经改变
cout<<endl;}
//f1是函数名

第三题:
for(int i=strlen(s)-1;i>=0;i--)
strlen(s)是返回s的元素个数,即大小,语句的意思是说,从s的大小(i)开始数,每数一个就把大小减1(i--),只要i>=0就继续数下去(同时里面的语句执行),直至条件不成立

第四题:
#include<iostream.h>
struct node
{
char s[10]; //定义一个字符数组
node *next; //定义下一个节点指针
};

void main()
{
node a[4]={{"China",&a[1]}, {"England",&a[2]}, {"America",&a[3]},{"---",NULL}}; //定义四个结构数组,分别赋值为把"china","england","america","---",还有各自赋值下一个节点的地址&a[1],&a[2],&a[3],最后一个赋予空NULL

for(node *p=a; p->next; p++) //遍历链表,把链表里面的数据输出来
cout<<p->s<<" ";
}

1.strcmp(c1,c2)<0? c1:c2,这是问号表达式,如果c1<c2
,值就是c1,否则的话就是c2

2.
{int x=a[i];a[i]=a[n-1-i];a[n-1-i]=x;}
是交换2个数组的值。

3.for(int i=strlen(s)-1;i>=0;i--)

strlen(s)是计算机字符串长度,也就8,i=strlen(s)-1=7
s[i]也就是s[7],也就是字符串的s[7]字符D,程序就是把字符串倒过来。

1.
strcmp(c1,c2)<0? c1:c2 是一个表达式
这个表达式的值是这样规定的
如果问号前的子表达式为真 ,整个表达式就是c1
否则就是c2
这里两个字符串不相等strcmp(c1,c2)<0应该为假 所以应该是cout<<c2

2.
f函数实现整型数组逆序
int x=a[i];a[i]=a[n-1-i];a[n-1-i]=x;
表示第一个 最后一个交换 第二个,倒数第二个,……交换
你说的没有错,是交换

3.
strlen(s)表示字符串s的长度,本题中应该是8,不包括'\0'
但是由于数组下标是0到7,所以 应该是strlen(s)-1

4.
a[4]是结构体数组,有四个数组元素,每个数组元素是一个结构体node,这四个结构体的第一个分量char s[10]分别存放china,england,america,---这四个字符串,他们的第二个分量分别存放下一个结构体的第一个分量的地址
比如第一个结构体,第一个分量是china 第二个分量就是第二个结构体的第一个分量的地址,也就是england字符串的地址。
最后cout<<语句依次打印每一个结构体的第一个分量也就是分别打印四个字符串

还明白了?

学程序语言一定要多上机
希望你好好联系 更上一层楼