本文目录一览:
大学c语言入门题
题意是要你将英文前两个字母和中文做成数据列表。然后通过遍历匹配查询。
对于保存该数据列表,可以用2维数组,可以用结构,也可以用数据库或文件。
我这里用数组的方法写了一个,你参考。 原理:利用数组在内存中地址是连续的。
#includestdio.h
#define row 7 //列表行数
#define clo 9 //列表列数
char *findc(char c[3],int n);
//参数c:查找的字符; n:正常调用传值0。
//功能:通过字符,匹配数组列表每行首字母。无匹配返回NULL;有唯一匹配,返回中文对应首地址;如有多个匹配 对比每行第二个字母
int main()
{
char c[3],*str;
while(1)
{
printf("输入首字母:");
scanf("%c",c[0]);
c[1]=c[2]=0;
getchar();
str=findc(c,0);
printf("代表%s\n",str);
}
return 0;
}
char *findc(char c[3],int n)
{
char week[row][clo]={"Mo星期一","Tu星期二","We星期三","Th星期四","Fr星期五","Sa星期六","Su星期天"},*p=week[0][0],*pSave;
int count=0;//记录匹配成功次数
while(p=week[row-1][clo-1])
{
if(c[0]==*p c[0+n]==*(p+n))
{
pSave=p+2;
count++;
}
p+=clo;
}
if(count==1)
return pSave;
if(count1)
{
printf("请输入一个字符:");
scanf("%c",c[1]);
getchar();
return findc(c,1);
}
else
return NULL;
}
c语言基础知识题
单选
4、C 7、B 9、D 11、C 12、A
多选
2、ABD 4、BD 14、ABD 15、BCD
判断
1、A 2、B 3、B 4、B 5、A
6、B 7、B 8、B 9、A 10、B
C语言入门题目,求详细易懂的解答过程。
答案为第一行:Tony。
解答:for循环共循环2次,然后strcpy(a,b)比较两串字符大小,如果strcpy值大于0,则a大于b。具体的比较是看字符串的字母的ASCII码的大小,如果相同,再继续比较第二个,这个不赘述。
主要看一下name[],对于一维数组来讲,它是元素,对于二维数组来讲,它不是具体的元素,而是代表的一维数组。比如name[3][20],为3行20列,那么name[0],它代表的是组成二维数组的第一维数组。又知道puts()括号里可以放一维数组名,可以输出它里面的字符串,对放name[0]的话,那就是输出3行20列中的第一行字符串。
通过for比较我们已经得出结果,即两次for循环都不符合条件,因此,m没有变化,=0。所以puts(nam[0])的话,就是输出Tony。
望楼主采纳。