1.
#include<stdio.h>
#include<string.h>
void main()
{
char *s1="ABCDEF",*s2="aB";
s1++;
s2++;
puts(s1);
puts(s2);
printf("%d\n",strcmp(s1,s2));
}
答案:1
2.程序段:
int x=12;
double y=3.141593;
printf(“%d%8.6f,x,y);的输出结果是(
A。123.141593
B.12
3.141593
C.12 3.141593
D.12 3.141593
3.以下结构体类型说明和变量定义中正确的是()。
A. typedefstruct
{int n; char c;} REC;
REC t1,t2;
B. typedef struct
{int n; char c;};
REC t1,t2;
C. typedef struct REC;
{int n=0; char c='A';} t1,t2;
解析:
用typedef声明新类型名
1.先按定义变量的方法写出定义
2.将变量名换成新类型名
3.在最前面加typedef
4。用新类型名去定义变量
4.下面程序的文件名为t.exe 在DOS下输入的命令行参数为:t to meet me<回车>则程序输出的结果是( )。
main(argc,argv)
int argc;char *argv【】;
{
int i;
printf("%d\n",argc);}
A.3 B.4 C. 2 D. 以上答案都不正确
解析: arac 中存入的是命今行中字符串的个数。argv是一#include "stdio.h" 个指向字符型的指针数组的指针。
5.若有定义:char*st="how are you";,下列程序段中正确的是()
A. char a[11],*p;strcpy(p,&st[4]); B. char a[11];strcpy(++a, st);
C.char a[11 ]; strepy(a,st); D. char a[],*p;strepy(p=&a[1],st+2);
解析:
本题综合考查字符数组的赋值和 strdov 函数的用法,0港言不允许用赋值表达式对字符数组赋值如下面的语句就是非法的·strl= "China “China”这 5 个字符放到数组 strl 中,除了逐个地输入外还能使用 stranv 民的 该辆数的功能是将一个字符串复制到一字符数组中例加·strcnv(strl "China stroov/stdolstr2);注音不能企图用以下语句来实行赋值(将str2的值传给 strl):strl=str2;不能用赋体语何将一个字符串常量或字符数组直接给一个字符数组
strcnv 函数的结构是·strcnv(安符数细 1(字符串 2)
其中雲要注音的是 字符数组1的长度不应小于字符串?的长度 "字符数组1”必师写成数组名形式如(strl) “字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
A. p没有初始化。加上p=a;或者char a[11】.*p: strqpy(p=a,&st[4]);
从st[4]开始复制给p,最终p=“are you
Ba是数组名,没法自增。
Ca只有11个字符,而st 有11个字符 再加上 10是12个,不够用。
D 没给a的长度。
答案:AABC(勉强对)
1.%8.6f 8指总长为8,小数点为6位