C语言上机练习5.doc
文本预览下载声明
C语言上机报告5 数组2
上机内容
找出下列程序中的错误并改正
1) /*有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。*/
#include stdio.h
#define M 3 //无分号
#define N 4
void main( )
{ int max,i,j,r,c;
int a[M][N]={{323,94,-10,218}, {3,9,10,-83}, {45,16,44,-99}};
max=a[0][0];r=0;c=0;
//r,c 无初值,当if ( a[i][j]max)不成立,则不会返回r=0,c=0,而是原来内存单元中的数。
for(i=0; iM; i++)
for(j=0; jN; j++)
if (a[i][j]max)
{ max= a[i][j];r=i;c=j;}
printf(max=%d,行=%d,列=%d\n,max,r,c);
}
2) 输入一串字符,计算其中空格的个数。
#include stdio.h
#include string.h
main( )
{ char c[80];
int i, sum=0;
gets(c);
for(i=1;i80; i++)
if(c[i] ==0x20) //单字符‘空格键’,单字符用‘’,字符串用“”
sum=sum+1;
printf(空格数为:%d \n, sum);
}
上机作业
完成下列选择题
1、 有语句char str1[10],str2[10]={“china”};则能将字符串china赋给数组str1的正确语句是________。
A、str1={china}; B、strcpy(str1,str2);
C、str1=str2; D、strcpy(str2,str1);
2 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
A) 3 B) 6 C) 10 D) 20
3 对于for(表达式1;;表达式3)可理解为( )
A)for(表达式1;1;表达式3)
B)for(表达式1:1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
4、以下for循环的执行次数是( ).
for(x=0,y=0;(y=123)(x4);x++);
A)是无限循环
B)循环次数不定
C)执行4次
D)执行3次
5 逻辑运算符两侧运算对象的数据类型().
A)只能是0或1 B)只能是0或非0正数
C)只能是整型或字符型数据 D)可以是任何类型的数据
6、设有数组定义: char str[ ]=“Chinae”; 则数组 str所占空间为
A) 5个字节 B)6个字节 C) 7个字节 D) 8个字节
7、下列描述中不正确的是
A) 字符型数组中可以存放字符串
B) 可以对字符型数组进行整体输入、输出 //gets(),puts()
C) 可以对整型数组进行整体输入、输出
D) 不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值//切记
8、 以下定义语句,char b=‘\123’;变量b __
//八进制\000,同时8进制只有数字0-7
A) 包含4个字符 B)包含3个字符
C) 包含2个字符 D)包含1个字符
9、以下语句的执行结果是(以下□代表空格):
char s[10];
s=abcd;
printf(%s,s);
A) 输出abcd B) 输出a C) 输出abcd□□□□□ D) 编译不通过
10、以下各项是合法的C语言字符常量的是
A) ‘\oxef’ B) ‘db’ C) ‘\23’ D) “”
11、以下不能对二维整形数组a进行正确初始化的语句是:
A)int a[2][3]={0};
B) int a[][3]={{1,2},{0}};
C) int a[2][3]={{1,2},{3,4},{5,6}}; //2行3列
D) int a[][3]={1,2,3,4,5,6};
12.判断两个字符串s1和s2相等,应当使用( )。strcmp() =,0;,-1;,1
A. if (s1 == s2) B. if (s1 = s2)
C. if (!str
显示全部