全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资(7)

2019-08-31 13:16

? 对部分元素赋初值,未赋初值的元素自动取0值 ? 若对全部元素赋初值,则第一维的长度可以不指定 例1:(2006-04-16)以下数组定义中错误的是(B) A) int x[][3]={0};

B) int x[2][3]={{1,2},{3,4},{5,6}}; C) int x[][3]={{1,2,3},{4,5,6}}; D) int x[2][3]={1,2,3,4,5,6};

【解析】若对全部元素赋初值,则第一维的长度可以不指定,C项正确。二维数组的初始化可以按行连续赋值,D项正确。C项二维数组的初始化超过第一维度长度,故错误。 5.知识点:二维数组和for语句 例1:(2010-03-09)有以下程序 #include main()

{int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

for(j=i;j<3;j++) printf(“%d”,a[i][j]); printf(“\\n”);

}程序运行后的输出结果是 123569 。 6.知识点:字符串

定义:由“”引起来的,由若干个字符所组成的序列。 字符串的结束标志:?\\0?

如字符串“china”,在内存中存储形式是

第 31 页 c h i n a \\0 该字符串的长度为5字节,所占的存储空间为6字节。 7.知识点:字符数组的定义及初始化

? 字符数组名是地址常量,不能赋值给数组名。 例1:(2009-04-32)以下选项中正确的语句组是(D)

A)char s[];s=”BOOK!”; B)char *s;s={“BOOK!”};

C)char s[10];s=”BOOK!”; D)char *s;s=”BOOK!”;

【解析】字符数组名是地址常量,不能赋值给数组名,故A、C项错误,D项指针s是个变量,将字符串常量赋值给s,是正确的。B项中给s赋值时不能用花括号将字符串括起来。 例2:(2009-09-31)下面是有关C语言字符数组的描述,其中错误的是(D)

A)不可以用赋值语句给字符数组名赋字符串 B)可以用输入语句把字符串整体输入给字符数组 C)字符数组中的内容不一定是字符串 D)字符数组只能存放字符串

8.知识点:字符数组的输入与输出 例1:(2009-09-13)有以下程序 #include main()

{char a[20]=”How are you?”,b[20];

共 78 页

scanf(“%s”,b);printf(“%s %s\\n”,a,b); for(i=0;s[i]!=0;i++) }程序运行时从键盘输入:How are you?<回车> if(s[i]>='0'&&s[i]<='9') n++; 则输出结果为How are you? How printf(\

【解析】scanf函数输入,以空格作为字符串输入结束的标志, } 程序运行后的输出结果是 (B) 故字符数组b只接收到字符串”How”。 A)0 B)3 C)7 D)8 例2:(2011-03)有以下程序 【解析】:for循环读取字符数组s中的字符,当读到0时退出main() 循环,注意0和‘0’的区别,字符‘0’的ASCII码为48,‘\\0’{ char a[30],b[30]; 的ASCII 码才是0,所以读取的字符为“012xy”中的字符,scanf(\for循环读取到字符后判断是不是数字字符,如果是n自增1,gets(b); “012xy”中的数字字符只有三个,所以选择B。 printf(\9.知识点:字符串处理函数

}程序运行时若输入:how are you? I am fine<回车>则输出结果例1:(2011-09-32)有以下程序: 是(B) #include A)how are you? B)how #include I am fine are you?I am fine main() C)how are you? I am fine D)row are you? { char 【解析】:scanf以空格作为字符串输入结束的标志,而gets(s)a[5][10]={“china”,”beijing”,”you”,”tiananmen”,”welcome”}; 不会。所以a得到的是“how”,b得到的是剩下的“are you? I int i,j; char t[10]; am fine”。故选择B。 for(i=0;i<4;i++) 例3:(2011-03)有以下程序 for(j=i+1;j<5;j++) main() if(strcmp(a[i],a[j])>0) { char s[]=\ { strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[i],t);} int i, n=0; puts(a[3]);

第 32 页 共 78 页

}程序运行后的输出结果是 (C) main() A.beijing B.china C.welcome D.tiananmen {char a[20]=”ABCD\\0EFG\\0”,b[]=”IJK”; 【解析】双层for循环部分是典型的排序方法,通过strcmp比strcat(a,b); printf(“%s\\n”,a); 较两个字符串的大小,然后借助t数组作为中转数组,通过}程序运行后的输出结果是(B) strcpy函数完成a[i]和a[j]两个字符串的交换,使a数组按从小A)ABCDE\\0FG\\0IJK B)ABCDIJK C)IJK 到大排序,即{”beijing” , D)EFGIJK “china” , ”tiananmen”,”welcome” ,”you” } 【解析】把字符数组b中的字符串连接到字符数组a中字符串例1:(2010-09-23)有以下程序 的后面,并删去字符串a后的第一个字符串结束标志?\\0?。故#include 输出结果为ABCDIJK。 #include 例3: (2010-09-31)下列选项中,能够满足“若字符串s1等于main() 字符串s2,则执行ST”要求的是 (A) {char x[]=”STRING”; A)if(strcmp(s2,s1)==0)ST; x[0]=0;x[1]=?\\0?;x[2]=?0?; B)if(s1==s2)ST; printf(“%d %d\\n”,sizeof(x),strlen(x)); C)if(strcpy(s1,s2)==1)ST; }程序运行后的输出结果是(B) D)if(s1-s2==0)ST; A)6 1 B)7 0 C)6 3 D)7 1 【解析】若字符串s1等于字符串s2,strcmp(s2,s1)==0,故答【解析】经过x[0]=0;x[1]=?\\0?;x[2]=?0?;后,x[]=”0\\00ING”。strlen案是A。 测字符串的实际长度,不含字符串结束标志?\\0?,故strlen(x) 为0。sizeof测字符串所占的存储空间,包含字符串结束标志, 故sizeof(x)为7。

例2:(2010-09-33)有以下程序 #include

#include

第 33 页 共 78 页

第 34 页

共 78 页

第四课 指针

第 35 页 共 78 页


全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:感受生命的意义教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: