下面程序运行后的输出结果是______。 struct abc { int a,b,c; } main() { struct abc s [2]={{1,2,3},{4,5,6}}; int t=-s[0].a+s[1].b; printf("%d\n",t); }A.5B.6C.7D.8

题目

下面程序运行后的输出结果是______。 struct abc { int a,b,c; } main() { struct abc s [2]={{1,2,3},{4,5,6}}; int t=-s[0].a+s[1].b; printf("%d\n",t); }

A.5

B.6

C.7

D.8


相似考题
参考答案和解析
正确答案:B
解析:在main函数中定义了一个structabc类型的数组,同时分别利用{1,2,3}及(4,5,6}对数组中两个元素进行初始化。在该结构体,依次对其中的a,b,c三个变量进行初始化。故s[0].a=1,s[1].b=5,所以本题输出为6。
更多“下面程序运行后的输出结果是______。 struct abc{int a,b,c;}main(){struct abc s [2]={{1,2,3},{ ”相关问题
  • 第1题:

    以下程序的输出结果是()includemain(){chars1[]="123",s2[]="abc",ss[20]="010";strc

    以下程序的输出结果是 ( ) #include<string.h> main() {char s1[]="123",s2[]="abc",ss[20]="010"; strcat(ss+1,strcpy(s2,s1)); printf("%s\n",ss); }

    A.10123

    B.0abc

    C.1123

    D.01abc


    正确答案:A

  • 第2题:

    下面程序的输出结果为 ______。includemain(){char pl [7]="abc",p[]2="ABC"str[50]="

    下面程序的输出结果为 ______。 #include<string.h> main() { char pl [7]="abc",p[]2="ABC"str[50]="xyz"; strcpy(str,strcat(p1,p2)); printf("%s"str); }

    A.xyzabcABC

    B.abcABC

    C.xyzabc

    D.xyzABC


    正确答案:B
    解析:strcpy(strl,s1).-作用是将字符串s1拷贝到字符数组strl中去。strcat(字符数组1,字符数组2):把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后返回字符数组1的地址。本题定义了三个字符数组p1,p2,str,strcat(p1,p2)函数的作用是将字符串数组p2接到符串p1的后面,结,果放在字符数组P1,再通过strcpy()函数将该字符串拷贝到str数组中,原str数组中的字符串xyz被覆盖,因此打印输出字符串str即可得到abcABC。

  • 第3题:

    下面程序的输出结果是includeincludemain(){char *p1="abc",*p2="ABC",str

    下面程序的输出结果是 #include<stdio.h> #include<string.h> main() { char *p1="abc",*p2="ABC",str[50]="xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n",str);}

    A.xyzabcABC

    B.zabcABC

    C.xyabcABC

    D.yzabcABC


    正确答案:C
    解析:本题考查的重点是拷贝字符串——使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串)其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志‘\0’一起复制。②不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理。另外,本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组,字符串)功能是把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。使用该函数时注意:①由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题。③连接前两个字符串都有结束标志‘\0’,连接后“字符数组”中存储的字符串的结束标志‘\0’被舍弃,只在目标串的最后保留一个‘\0’。

  • 第4题:

    有以下程序inc1udemain(){char*s={"ABC"}; do {printf("%d",*s%10);s++; }while(*s);

    有以下程序 #inc1ude<stdio.h> main() { char*s={"ABC"}; do { printf("%d",*s%10); s++; } while(*s); } 注意字母A的ASCII码值为65。程序运行后的输出结果是______。

    A.5670

    B.656667

    C.567

    D.ABC


    正确答案:C
    解析:本题考查的是do-while语句的使用,do-while执行的过程是当while后面—对括号中表达式的值为非0时,转去执行循环体,当值为0时,退出循环。本题定义了—个指针变量s,并使得s指向字符串"ABC",的首地址,即把字符A的地址赋给s,因为do-while语句是先执行循环体再进行循环条件的判断,因此先执行printf语句,“s%10”是s对10的取模运算,第—字符A的ASCII码为65,故“65%10”取模运算结果为5,因此输出5,接着执行s++,s指向字符串的下—个字符,当字符串中字符没有循环完时,继续执行do-while语句,以此类推,B和C的分别为6和7,因此,选项C是正确的。

  • 第5题:

    下面程序的输出结果是______。includemain(){char*p1="abc",*p2="ABC",s[20]="xyz"; s

    下面程序的输出结果是______。 #include<string.h> main() { char*p1="abc",*p2="ABC",s[20]="xyz"; strcpy(s+1,p2); strcat(s+2,p1); printf("%s\n",s); }

    A.xABCabc

    B.zABCabc

    C.yzabcABC

    D.xyzABCabc


    正确答案:A
    解析:strcpy(s+1,p2)是字符串复制,s中的内容变为"xABC",strcat(s+2,p1)是字符串连接(s的内容已不是初始化的内容,而是复制之后的内容),结果为"xABCabc"。

  • 第6题:

    下面程序的输出结果是includeincludemain(){char*p1="abc",*p2="ABC",str[

    下面程序的输出结果是 #include<stdio.h> #include<string.h> main() { char*p1="abc",*p2="ABC",str[50]="xyz"; strcpy(str+2,streat(p1,p2)); printf("%s\n",str);}

    A.xyzabcABC

    B.zabcABC

    C.xyabcABC

    D.yzabcABC


    正确答案:C
    解析:本题考查的重点是拷贝字符串——使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串),其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有的内容被覆盖。使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志“\0”一起复制;②不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数处理。另外,本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组,字符串)。功能是把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。使用该函数时注意:①由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;②连接前两个字符串都有结束标志“\0”,连接后“字符数组”中存储的字符串的结束标志“\0”被舍弃,只在目标串的最后保留一个“\0”。