C语言第五章练习题解析

版权申诉
0 下载量 99 浏览量 更新于2024-07-07 收藏 82KB DOC 举报
"C语言第五章习题文档包含了关于C语言的一些练习题目,主要涉及选择题,涵盖字符串比较、数组定义及使用、程序控制结构等方面的知识。" 以下是针对这些练习题的详细解答: 1、判断字符串a和b是否相等,应当使用(D) D、if(strcmp(a,b)) 在C语言中,比较两个字符串是否相等不能直接用`==`,而是应该使用`strcmp`函数。`strcmp`会逐个比较两个字符串中的字符,直到找到不匹配的字符或遇到结束符`\0`,并返回一个整数值表示比较结果。 2、以下正确的定义语句是(C) C、long b[2][3]={{1},{1,2},{1,2,3}} C语言中,二维数组的定义必须指定每一维的大小,除了最后一个维度可以省略。选项C正确地定义了一个2行3列的长整型数组,并初始化了部分元素。 3、以下各组选项中,均能正确定义二维实型数组a的选项是(C) C、float a[3][4]; static float a[][4]={{0},{0}}; auto float a[][4]={{0},{0},{0}}; 在C语言中,正确定义二维数组的方式是明确每个维度的大小。选项C中的三个定义都符合这一要求,它们分别定义了一个3x4的数组、一个未指定第二维大小但初始化的数组以及一个自动类型推断的数组。 4、下面程序的运行结果是(B) 该程序会遍历字符串"SSSWLIA",遇到"I"时跳过下一个字符,遇到"L"时继续下一次循环,其他情况输出当前字符并跳过下一个字符。因此,输出结果是"SW*"。 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入(A) char x[]="programming"; char y[]="Fortran"; int i=0; while(x[i]!='\0'&&y[i]!='\0') if(x[i]==y[i]) printf("%c",《1》); else i++; 当字符串中的字符相等时,需要输出这个字符并移动到下一个字符。因此,横线处应填写`x[i++]`,使指针i递增,指向下一个字符。 6、有下面的程序段,则(D) char a[3], b[]="china"; a=b; printf("%s",a); 尝试将一个字符串常量赋值给字符数组会导致编译错误,因为字符串常量是不可修改的。因此,选项D表示编译出错是正确的。 7、下面程序的运行结果是(B) main() {char ch[7]={"12ab56"}; int i=0; while(ch[i]>='0'&&ch[i]<='9')i++; printf("%d\n",i); 此程序用于找出字符串中第一个非数字字符的位置,因此输出是"2",因为"12"是数字,然后遇到'a',条件不再满足,i的值为2。 以上是针对提供的练习题的详细解答,涵盖了C语言中字符串操作、数组定义与初始化、流程控制等多个重要知识点。
2023-03-12 上传