谁能帮我讲解一下这道c语言题目

2025-01-03 00:09:22
推荐回答(3个)
回答1:

我们一句一句来:
STREC fun ( STREC *a, char *b ) 它的返回值是STREC类型的结构体,此函数它有两个参数:一个是STREC类型的指针和一个是char类型的指针
STREC h; 定义了一STREC类型结构体变量
for (i=0 ; iif ( strcmp(a[i].num, b)==0) a[i].num,表示a[i]这个结构体的num项,整句的意思就是,当a[i]结构体对应的num项与字符串指针b指向的字符串相等时,将结构体a【i】赋给结构体变量h;此时退出循环,换回结构体h。
当没有找到与b指向的字符串相等的a[i].num时,将h.num项置空,h.s置-1,退出循环,返回结构体变量h;

回答2:

这个程序是对输入字符串的字母统计作用,首先你得明白:
1、switch中,符合哪个case条件,则直接跳过前面的case直接执行符合的case。
2、当case后没break时,其下面的语句将一一好无条件的执行。
现在来分析字母:
A:跳到case ‘A’;然后一次执行后面语句。V0=1(default),V1=1(case ‘U’),V2=1(default);
D:跳到default,则,V0=2,V1=1,V2=2
同理你可以一一处理后面的字母了。
最后应该是:V0=13,V1=4,V2=12(因为是do语句,对《CR》判断时先进行了加1计算,所以结果V0不是12而是13,V2不是11而是12,V1不是3而是4.

回答3:

char fun ( int *a, char *b )
{
int i;
char h;
for (i=0 ; i if ( strcmp(a[i].num, b)==0)
{
h =a[i] ;
break;
}
else
{
strcpy(h.num,"");
h.s=-1;
}
return h;
fun函数的功能就是这样:
if ( strcmp(a[i].num, b)==0)
{
h =a[i] ;
break;
}
这句话就是如果找到学生学号,就把学生信息赋值给字符串里

}