- 以下程序代码在编译时出现了错误,请指出程序代码错误的地方并改正,使其能编译成功。
01 #include
02 int main(void)
03 {
04 int i;
05 char str[30]=”this is my first program.”;
06 char strl[20]=”my company is ZCT.”
07 printf(“原始字符串联str = %s\n”, str);
08 printf(“字符串 srtl = %s\n”,strl);
09 strl=str;
10 printf(“复制后字符串 strl = %s\n”, str);
11 return 0;
12 } - 下面这个程序想要显示字符串内容,但是结果不如预期,请问出了什么问题?
01 #include
02 int main(void){
03 char str[ ]={‘J’,‘u’ ,‘s’,‘t’};
04 printf(“%s”,str);
05 return 0;
06 }; - 假设这声明了一个整数数组a[30],而a的内存位置为240ff40,请问a[10]与a[15] 的内存位置是什么?
- 如果声明一个50个元素的字符数组,如下所示; char address[50]; 假设这个数组的起始位置指向1200,试求出address[23] 的内存的起始位置。
- 为了要显示数组中所有元素的值,使用for循环语句,但结果并不正确,请问下面这个程序代码哪里出了问题?
01 #include
02
03 int main(void)
04 {
05 int arr[5] = {1, 2, 3, 4, 5};
06 int i;
07 for (i = 1; i <= 5; i++)
08 printf(“a[%d] = %d\n”, i, arr[i]);
09 return 0;
10 } - 下面这个程序代码片段要设置并显示数组初始值,但隐含了不易发现的错误,请找出这个程序代码片段的错误所在。
01 int a[2, 3] = {{1, 2, 3},{4, 5, 6,} };
02 int i,j;
03 for(i=0; i<2; i++)
04 for(j = 0; j<3; j++)
05 printf(“a[%d, %d] = %\n”, a[I, j])
- 下面这个程序片段哪里出了错误?
01 chqr str[80];
02 printf(“请输入字符串:”);
03 scanf(“%c”,&str);
04 printf(“您输入的字符串为:%s”,str);
- 中文字是由两个字节所组成的中文字的第一个编码为0xA440,在Big5中将中文字分为高低两个字节,使用for循环语句来显示所有的中文字。
- 两个矩阵,对A与B的相乘,是有某些限制的。首先必须符合A为一个m*n的矩阵,B为一个n*p的矩阵,对A*B之后的结果为一个m*p的矩阵C设计一个程序,让用户输入A、B矩阵内容,计算两者乘积。
- 下列程序代码的输出结果是什么?
int n1[5],i;
for (i=0;i<5;i++)
n1[i]=i+6;
printf(“%d”,n1[3]);
- 什么是二维数组?请简单叙述。
C语言数组与字符串测试题(2)
第9行有错误,因为无法利用字符串名称直接指定给另一个字符串,如果需要指定字符串,必须从字符数组中一个一个地取出元素内容进行复制。第9行矩阵,strl、str可改为用循环方式指定数组元素相等。
for(i=0; strl[i]!=’\0’;i++)
{
strl[i]=strl[I];
}
第三行改为
03 char str[ ]={‘J’,’u’,’s’,’t’,’\0’};
如果整数的长度为4个字节,则a[10]表示从a的位置移动10×4个字节位置,结果是240ff68同理可推出a[15]的内存位置应为240ff88。
1222
第07行错误,数组索引值是由0开始,最后一个元素索引应该是元素个数减1,所以应修正为
for(i=0;i<5;i++)
第01行与05行出错了,因为二维数组的声明与指定是a[ ][ ]的形式,而不是a[,],修改为
01 int a[2][3]={{1,2,3},{4,5,6 } };
05printf(“a[%d][%d]=%d\n, a[i][j]);
第03行不需要使用&运算符,因为str名称本身就表示内存地址。
#include
int maina()
{
int i, j;
for(i=164; i<256; i++)
for(j=64; j<256 ;j++){
{
printf(“%c%c”,i, j);
if(!(j %30) )
getch();
}
putchar(‘\n’);
return 0;
}
提示,C语言中的元素有以下关系
C11=a11*b11+a12*b21+…+a1n*bn1
C1p=a11*b1p+a12*b2p+…+a1n*bnp
Cmp=am1*b1p+am2*b2p+…amn*bnp
9
二维数组可以视为一维数组的线性方式延伸处理,也可以视为是平面上列与行的组合。
自我评价 答对0--2题 答对3--4题 答对5--6题 答对7--8题 答对9--10题
