1) main()
{
char a[10]="abcde",b[]="fgh"; int i=0;
strcpy(a+1,b+2);
printf("%s",a);
}
请详细解释一下”strcpy(a+1,b+2) 这”句语句
2) main()
{
char s[][10]={"a","good",world"};
strcat(s[0],s[1]);
printf("%s",s[0]);
}
请详细解释一下”strcat(s[0],s[1]) 这句语”句
strcpy() 是字符串复制函数。连字符串的结束标志‘0’一同复制。
对于 strcpy(a+1,b+2); 中的 b+2 则是数组里的 “h0”的首地址。
a+1则是数组里的 “ bcde的”首地址。
即此函数的意义是:把“h0”复制到 “bcde的”位置。字符串遇到‘0’结束
即结果是: ah。
对于 strcat(s[0],s[1]); 中的二为数组可以看成是多个一维数组组成的。所以
s[0] 代表
的是 “a的”首地址, s[1] 代表的是 “good”的首地址。这是字符串连接函数。即把
good
放到了 a的后面。
结果是: agood。
二级 C语言程序设计答案及详解
一、选择题
( 11 )B) 【解析】每一个 C 语言的文件或函数都可以单独编译,但只有main
数的才可以执行。
( 12 )A ) 【解析】预定义标识符是C语言中的标识符,在C语言中也有特定的含
义,如函数 printf 、
scanf 、 sin 等和编译预处理命令名(如define和 include )。预定义标识符可以作
函
为用户标识符使用,只是这样会
失去系统规定的原义。
( 13) B ) 【解析】 0xab是十六进制表示的常量。
( 14) A ) 【解析】 C 语言用函数实现软件的模块化设计。
( 15)C) 【解析】 C 言中, 常常用一个 符来代表一个常量,称 符号常量。
符号常量在使用之前要先定 ,定 格式如下:
#define< 符号常量名 >(常量)
其中, 可以是数字常量,也
可以是字符
( 16) f)Tj/F5 1C ) 【解析】 目中用scanf函数以整数的形式 入a,b 的 。
C)整型数字 3 后面有一个空格,当 入空格 ,scanf函数 入就会 止。
17) C) 【解析】 C 言中 char 型数据占字 数 1.
18) B ) 【解析】由于 3!=4 的 果 1 ,而 1>2 的 果 假。
( 19) D) 【解析】使用switch 句直接 理多个分支,其一般形式 :
switch( 表达式 )
{
case常量表达式 1:
句 1;break;
case常量表达式 2:
句 2;break;
??
case常量表达式 n:
句 n;break;
default:
句 n+1;break;
}
switch 句的 行流程是:首先 算 switch后面 括号中表达式的 ,然后用此
依次与各个 case的常量表达式比 ,若 括号中表达式的 与某个case后面的
常量表达式的 相等,就 行此case后面的 句, 行后遇break 句就退出
switch 句;若 括号中表达式的 与所有case后面的常量表达式都不等,
行 default 后面的 句 n+1 ,然后退出 switch 句。
20) D) 【解析】由于 a 的初始 等于 -2 ,所以 while 循 言 行两次 束,此 量 a 的 等于 1 , 量 b 的等于 2。
( 21) C) 【解析】定 指 量 ,必 将指 量初始化 NULL ( 空),
否 ,如果不 它地址,系 会随机 它分配一个地址。
22) D) 【解析】两个 的双引号: "",是一个字符串常量,称 “空串”。
23) D) 【解析】由于 a 的 'H',符合( a>='A'&&a<='Z' ),所以条件表达式的 等于 (a-'A'+'a'), 即 'h' 。
24) B ) 【解析】在函数 main() 中,第一次 行 for 循 , b 的 等于 1 ,此 出字母 B;第二次 行 for 循 , b 的 等于 3 ,此 出字母 D;第三次 行 for 循 , b 的 等于 8 ,此 出字母 I。
25 )D ) 【解析】 x[0] 可看作是由 3 个整型元素 成的一 数 ,不可以用 句
x[0]=0 , 数 所有元素 初 0 。
( 26 )C ) 【解析】 指 量