C语言课后习题Word文件下载.docx
- 文档编号:15365872
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:30
- 大小:30.33KB
C语言课后习题Word文件下载.docx
《C语言课后习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言课后习题Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
A.staticinta[2][3]={1,2,3,4,5,6};
B.staticinta[2][3]={{1},{4,5}};
C.staticinta[][3]={{1},{4}};
D.staticinta[][]={{1,2,3},{4,5,6}};
4.设有如下形式的字符数组定义:
staticcharstr[]="
Beijing"
则执行下列语句后的输出结果为()。
printf(“%d”,strlen(strcpy(str,"
Hdllo"
)));
A.7B)5C)8D)9
5.在下面给出的语句中,()是对一维数组正确赋初值的语句。
A)inta[10]="
Thisisastring"
B)chara[]="
C)inta[3]={1,2,3,4,5,10};
D)chara[3]="
6.已知对一维数组ns有如下说明:
intns[10];
要求使ns的所有元素都取值0。
下面不正确的程序段是()。
A)for(j=0;
j<
10;
j++)ns[j]=0;
B)ns[0]=0;
for(j=1;
j++)ns[j]=n[j-1];
C)for(j=1;
=10;
D)ns[0]=ns[1]=ns[2]=ns[3]=ns[4]=ns[5]=ns[6]=ns[7]=ns[8]=ns[9]=0;
7.有说明语句:
inta[][4]={1,5,8,7,12,22,9,41,55,27};
则数组a第1维的长度应该是(C)。
A)2B)3C)4D)5
8、下面程序运行后,其输出是()
#include<
stdio.h>
voidmain()
{staticchars[30]=”abcdefg”;
staticchart[]=”abcd”;
inti,j;
i=0;
while(s[i]!
=’\0’)
i++;
j=0;
while(t[j]!
{s[i+j]=t[j];
j++;
}
s[i+j]=’\0’;
printf(“%s\n”,s);
A.abcdabcdefgB.abcdefgC.abcdD.abcdefgabcd
9、下面程序运行后,其输出是()
{inta[4][4],i,j,k;
for(i=0;
i<
4;
i++)
for(j=0;
j++)
a[i][j]=i+j;
for(i=1;
for(j=i+1;
{k=a[i][j];
a[i][j]=a[j][i];
a[j][i]=k;
{printf(“\n”);
printf(“%d”,a[i][j]);
A.0123B.0123C.0123D.3210
1234125412424321
2345234523535432
3456345634646543
二、填空题
1.任何一个数组的数组元素都具有相同的数绷名和___________。
2.同一数组中,数组元素之间是通过___________来加以区分的。
3.已知数组e定义为inte[][4]={{1,2,3,4},{5,6,7,8}};
则e是一个_________行_________列的二维数组,总共有___________个元素,最大行下标是___________,最大列下标是___________,其首行的各元素的值分别是___________。
4.要使aa成为具有如下初始值的二维int型数组,则最简单的定义aa的语句是________。
10000
12000
12300
12340
12345
5.执行下列语句序列后,数组str2中的字符串是___________。
charstr1[]="
ABCD"
str2[10]="
XYZxyz"
str2[i]=str1[i];
i++);
6.有说明语句:
intx[][4]={{1},{2},{3}};
那么元素x[1][1]的取值是___________。
7.下面的语句显示输出3行3列数组a的主对角线上的所有元素,请补充完整。
for(i=________;
______;
________)
____________
printf(___________);
8.下面的语句按行显式输出5行3列数组aa的所有元素,请补充完整。
for(i=_____;
_____;
_____)
{for(j=_____;
______)
printf(__________);
printf(__________);
}
三、程序阅读
1.写出下列程序的运行结果。
voidmain()
{
inti,a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;
3;
i++)
printf("
%d\n"
a[i][2-i]);
2.阅读程序,说明其功能及输出的结果。
voidmain()
intk;
charx,a[10]={'
e'
f'
g'
h'
i'
j'
for(k=0;
k<
5;
k++)
{
x=a[k];
a[k]=a[9-k];
a[9-k]=x;
}
printf("
%c”,a[k]);
printf("
\n”);
3.阅读程序,说明其功能及输出的结果。
intj,k;
intstr[]={2,-4,5,15,19,-11,16,7};
for(j=0,k=j;
8;
j++)
if(str[j]>
str[k])
k=j;
%c”,k);
4.阅读程序,说明运行后s1,s2数组中保存的字符串内容。
{
intk=0,j=0;
hars1[10]="
abcdef"
s2[20]="
inter"
scanf("
%s"
s1);
while(s2[k])k++;
while(s1[j])s2[--k]=s1[++j];
%s”,s1);
%s”,s2);
时,若键盘输入的是net,则s1中的字符串是___________,s2中的字符串是__________。
5.阅读程序,说明其功能及输出的结果。
#include<
string.h>
main()
ints1,s2,s3;
s1=strcmp("
China"
"
Russia"
);
s2=strcmp("
s3=strcmp("
Chinaf"
Chinae"
s1=%d\n"
s2=%d\n"
s2),;
s3=%d\n"
s3);
四、编程题
1.从键盘输入一组数据,显式输出其最大值。
2.编程实现用插入排序法对55,2,6,4,32,12,9,73,26,37这10个整数进行排序。
【提示】插入排序法是一个简单,但相对比较高效的排序方法。
插入排序通过将数组中的元素插入到适当的位置来进行排序,步骤如下所述。
(1)将数组中的头两个元素按排序顺序排列。
(2)把下一个元素(第3个)插入到其对应于已排序元素的排序位置。
(3)对于数组中的每个元素重复
(2),即把第4个元素插入到适当位置,然后是第5个元素,等等
3.有一个3×
4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号。
4.编写一个程序在已知字符串中查找某个字符首次出现的位置,若字符串中没有该字符,给出相应信息。
5.输入一个字符串,统计其中包含的单词个数,假定单词与单词之间用空格分隔。
6.编写一个程序,从键盘上输入2行3列数组的元素值,将其转置(即将行和列的元素互换),存到另一个二维数组中。
7.设计一个程序,统计某学校3门课程(英语,数学,计算机)的考试成绩。
要求能输入考生人数,并按编号从小到大的顺序依次输入考生的成绩,再统计出每门课程的全校总分、平均分以及每个考生课程的总分和平均分。
8.设计一程序,它输入10个整数到一个数组中,调整这10个数在数组中的排列位置,使得其中最大的一个数成为数组的首元素,最小的一个数成为数组的末元素。
9.用字符串拷贝函数实现2个字符串的拷贝。
习 题 6
一、单项选择题
1.C语言的函数题中,下面()是正确的。
A)可以定义和调用其它函数
B)可以调用但不能定义其它函数
C)不可调用但可以定义其它函数
D)不可调用及定义其它函数
2.以下叙述中不正确的是()。
A)一个函数中可以有多个return语句
B)函数通过return语句传回函数值
C)主函数可以有形参
D)调用函数须独立语句完成
3.以下叙述中不正确的是()。
A)在不同的函数中可以使用相同的名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
4.以下正确的说法是()。
A)实参和与其对应的形参各占用独立的存储单元
B)实参和与其对应的形参共占用一个存储单元
C)只有当实参和与其对应的形参同名时才共占用相同的存储单元
D)形参时虚拟的,不占用存储单元
5.C语言规定,函数返回值的类型是由()决定的。
A)return语句中的表达式类型B)调用该函数时的主调函数类型
C)调用该函数时由系统临时D)在定义函数时所指定的函数类型
6.若用数组名作为函数调用的实参,传递给形参的是()。
A)数组的首
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 习题