1、题目
使用字符数组在控制台打印C语言的常见特点。请选出错误的print函数。
#include <stdio.h>
#define ROW 7
#define COL 50
int main(int argc, char** argv)
{
char feature[ROW][COL] = {
"1. 语言简洁,使用方便灵活",
"2. 可移植性好",
"3. 表达能力强",
"4. 表达方式灵活",
"5. 可进行结构化程序设计",
"6. 可以直接操作计算机硬件",
"7. 生成的目标代码质量高"};
printf("********** C语言特点 **********\n");
print(feature);
printf("*******************************\n");
return 0;
}
2、函数范围
void print(char feature[ROW][COL])
{
for line in feature:
printf("%s\n", line);
}
看起来c++中似乎没有for in方式的循环,c++中有for (auto line : feature)
但即使是针对for (auto line : feature)
的方式,似乎无法通过函数调用。
//可以成功运行
int main() {
int num[4] = {1,2,3,4};
for(auto a : num)
printf("%d ",a);
}
//无法确认数组范围,无法正常运行
void func(int num[4]) {
for(int i = 0;i < 4; i++) {
printf("%d ",num[i]);
}
}
int main() {
int num[4] = {1,2,3,4};
func(num);
}
3、正常运行的方式
void print(char feature[ROW][COL])
{
for (int i = 0; i < ROW; ++i)
{
for (int j = 0; feature[i][j] != '\0'; ++j)
printf("%c", feature[i][j]);
printf("\n");
}
}
void print(char feature[ROW][COL]) {
int i = 0;
while (i < ROW)
printf("%s\n", feature[i++]);
}
https://edu.csdn.net/skill/practice/c-946fc2eeba644ecf93e68974bf69f42a/319?language=c&materialId=18437