c语言问题

1,不能把字符串:Hello!赋给数组b的语句是( )。
A. char b[10]={'H','e','l','l','o','!'}; B. char b[10]; b="Hello!";
C. char b[10]; strcpy(b,"Hello!"); D.char b[10]="Hello!";
19、在C程序中有如下语句:char *func(int x,int y); 它是( )。
A. 对函数func的定义。 B. 对函数func的调用。
C.对函数func的原型说明。 D. 不合法的。
20、以下程序的输出结果是( )。
char str[15]=”hello!”;
printf(“%d\n”,strlen(str));
A. 15 B. 14 C. 7 D. 6

1. 靠,这题看来A,B都错了
A.
字符串的话,要以'\0'作结束符
改为
char b[10]={'H','e','l','l','o','!','\0'};就对了
B.
char b[10];b="Hello!";
字符数组只能在初始化时整体赋值。

19.C 因为char *func(int x,int y); 后面有分号,说明这只是一句原型声明,并非函数定义

20.D
strlen(str)函数返回字符串str 的长度( 即空值结束符 '\0'之前字符数目)。
所以是6个
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-13
1.B
2.C
3.D

1:A和D都是初始化字符串数组的常用方法。C定义数组后,拷贝常量hello!给b赋值。
2:就是函数的声明,没什么可说的。
3: str实际有隐式的'\0',如果是sizeof,则为7,但这里是strlen,不包含'\0',自然是6。
第2个回答  2008-01-13
1.B和D 的语句是一样的,所以先排除,A 的话,应该是可行的,只不过结尾的符号不一样,会有其他的标志。
应该选择C

strcpy

原型:extern char *strcpy(char *dest,char *src);

用法:#include <string.h>

功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

举例:

// strcpy.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";
char d[20];

clrscr();

strcpy(d,s);
printf("%s",d);

getchar();
return 0;
}

2. 应该选择B
应该是调用函数,而且返回的话,应该是CHAR 的字符型

3应该选择C
是7位。加了0和/ 占了7位
示例

命令: (strlen "abcd")

4

命令: (strlen "ab")

2

命令: (strlen "one" "two" "four")

10

命令: (strlen)

0

命令: (strlen "")

0
第3个回答  2008-01-13
B
A
D
对第二题作补充:
函数的定义和调用函数是一个命名的代码块,是程序完成其操作的场所。在程序设计中,有许多算法(解决问题的 方法)是通用的,例如求一个数的平方根,解一元二次方程。如果将这些算法定义为一个函数,程序 员就可以在程序中需要这些算法的地方使用它们(而不必再作定义)。描述一个函数所执行的算法 的过程称为函数定义,而使用一个函数的过程称为函数调用。 一个函数总是为完成一定的任务而设计的,但在每次使用时所处理的数据是不同的,函数可带 有参数,用于表示它所处理的数据。一个函数在执行完它的任务之后,一般情况下要向它的使用者 返口一个值,这个值称为函数的返回值,

函数的定义

函教定义的一般格式

在程序中使用函数必须先做说明。函数说明分为定义性说明(简称函数定义)和引用性说明(以 后简称函数说明)。定义性说明指定了一个函数名及其所代表的代码(函数体)。引用性说明只说明了函数名而没有指定函数体,它主要用于引用在程序的其它地方定义的函数,典型的情况是函数的 使用出现在函数的定义之前,以及引用在其他模块中(例如系统库中)定义的函数。

函数定义的一般形式是:

类型 函数名(参数表)

函数体

函数定义指定了一个函数名和函数的类型,函数名是一个有效的C++标识符,函数的类型规定为该函数所返回值的类型,它可以是除数组和函数之外的任何有效的C++数据类型。如果一个函数不返回值,则返回类型指定为void类型。 函数定义也指定了一个参数表,它是用逗号隔开的一个变量名说明列表,这些变量称作函数的 形参,它们用于接收调用函数时传送给这个函数的数据。参数表可以为空,这表明函数不需要从调 用者那里接收数据。即使参数表为空,函数名后的一对圆括号也不能省略。 花括号内括起的函数体是一个语句序列,用于描述这个函数所要执行的操作。当函数返回一个值时,在这个函数体中必须有一个return语句。下面定义的函数sum用于求两个数之和。

int sum(int x , int y)

{

int temp;

temp=x+y;

return temp;

}

函数sum带有两个整型参数调和y,其中的return语句将参数x和y相加之后的值返回给它的调用者,函数的类型为int。 从函数sum的定义中可知,在参数表中进行变量说明时,每个变量必须分别指定类型和名字。

下述说明方法是不正确的:

int sum(int x, y)//incorrect

函数调用

函数调用是由函数名和函数调用运算符()组成的一个表达式,

其一般形式为:

函数名(实参表)

实参表是用逗号隔开的一个表达式列表,其中的每个表达式的值称为实参。在函数调用时,实参的值传给了形参;在实参表中,实参的个数必须和形参的个数相同,实参的类型必须和对应的形参的 类型一致。函数调用表达式的类型为在函数定义中为该函数指定的类型,如果其类型不为void的) 话,这个表达式值就是函数定义中的return语句所返回的值,否则它表示一个无值表达式。

例如调用表达式: sum(10,5) 的类型为int,在函数调用过程中,实参10赋给了形参x,5赋给了形参y,在函数返回时,该表达式的值为15,这个值可以作为操作数在表达式中参与运算,例如:

c=sum(10,5);

函数调用的执行过程可以示意说明为:

main() { c = sum(10,5);调用------------------> int sum( Int x, Int y) { int temp; temp=x十y; return temp;返回 } 在main函数中,返回值赋给c,...}

即在对调用表达式求值时,程序转去执行函数sum中的第一条语句,当遇到return语句时,又返回到调用发生点,程序接着在调用点后开始执行,即将返回值置给变量c。

下面所列的程序供读者验证上面所作的解释。

#include <iostream.h>

int sum(int x, int y)

{

int temp;

temp=x十y;

return temp;

}

void main()

{

int a, b, c;

a=10;

b=5;

c=sum(a,b);

cout << c;

}

当在函数定义中没有指定形参时,调用表达式中的实参表为空,但函数调用运算符不能缺省。 例如:

int value()

{

return 5*10;

}

void main()

{

cout << value();

}

参考资料:http://www2.ratvu.com/dubiao/cpp/05/01.htm#a

相似回答