单选题有如下程序:#include #include main(){ printf(%d,strlen(0\tA011\1));}程序运行后的输出结果是(  )。A 8B 9C 7D 10

题目
单选题
有如下程序:#include #include main(){ printf(%d,strlen(0\tA011\1));}程序运行后的输出结果是(  )。
A

8

B

9

C

7

D

10


相似考题
更多“有如下程序:#include <stdio.h>#include <string.h>main(){ printf(%d”相关问题
  • 第1题:

    当执行下面的程序时,如果输入ABC,则输出结果是 ( ) include include

    当执行下面的程序时,如果输入ABC,则输出结果是 ( ) # include<stdio.h> # include<string.h> main( ) { char ss [10] ="12345"; gets(ss);strcat(ss"6789");printf("%s\n",ss); }

    A.ABC6789

    B.ABC67

    C.12345ABC6

    D.ABC456789


    正确答案:A

  • 第2题:

    下列程序的运行结果是()。 include include main() {char*s1="abDuj"; char

    下列程序的运行结果是( )。

    #include<stdio.h>

    #include<string.h>

    main()

    { char*s1="abDuj";

    char*s2="ABdUG";

    int t;

    t=strcmp(s1,s2) ;

    printf("%d",t);

    }

    A.正数

    B.负数

    C.零

    D.不确定的值


    正确答案:A
    解析:本题考查字符串比较函数和两个字符串比较的原则两个知识点:①原则是依次比较两个字符串同一位置的一对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同,则ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大。② strcmp(s1,s2)的返回值,当str1str2时,返回值0:当 str1=str2时,返回值为0;当str1>str2,返回值>0。

  • 第3题:

    有以下程序: include main( ) {char s[ ] ="159" , * p;p=s;printf( "% c", * p + +

    有以下程序: #include <stdio.h> main( ) { char s[ ] ="159" , * p; p=s; printf( "% c", * p + + ); printf("%~", * p++);}程序运行后的输出结果是( )。

    A.15

    B.16

    C.12

    D.59


    正确答案:A
    解析:语句p=s将指针变量p指向字符数组s,第一次输出时,由于++和*为同一优先级,而结合方向为自右向左,所以,*p++相于*(p++)。但又因为“++”在p的右侧,所以,先输出*p,得到s[0]的值,然后P++,P指向s[1],故第二次输出时,输出s[1]的值,所以输出结果为15。

  • 第4题:

    设有下列程序: include include main() { int i; char si 10],ti 10]; gets(

    设有下列程序:

    include<stdio.h>

    include<string.h>

    main()

    { int i;

    char si 10],ti 10];

    gets(t);

    for(i=0;i<2;i++)

    { gets(s);

    if(strcmp(t,s)<0)strcpy(t,s);

    }

    printf("%s\n",t);

    }

    程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。


    正确答案:QTHRG
    QTHRG 解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0;若ts,则函数值小于0。strcpy(t,s)函数的功能是把字符数组,所指字符串的内容复制到字符数组t所指的存储空间中。
    本题中,t[10]="CDEF".第一次循环,s[10]="BADEF",if语句的控制条件strcmp(t,s)0不成立,接着执行第二次循环,s="QTHRG”, if语句的控制条件strcmp(t,s)0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。

  • 第5题:

    以下程序的输出结果是()。includeinclude main(){char str[12]={'s','t','r

    以下程序的输出结果是( )。 #include <stdio.h> #include <string.h> main() { char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str) ); }

    A.6

    B.7

    C.11

    D.12


    正确答案:A
    解析:本题考查求字符串的长度。程序中定义字符串str时中请了12个字节的内存空间,对它赋初值后,函数strlen在求串长度时,以'\0'作为串结束符,所以,strlen(str)的值为6。

  • 第6题:

    以下程序:includeincludemain(){char str[]="abcd\n\123\xab";printf("%d"

    以下程序: #include<stdio.h> #include<string.h> main() {char str[]="abcd\n\123\xab"; printf("%d",(str)); } 运行后的输出结果是( )。

    A.10

    B.9

    C.7

    D.14


    正确答案:C

  • 第7题:

    下列程序的输出结果是()。includeincludemain(){char a[]="\n123\\";printf

    下列程序的输出结果是( )。 #include<stdio.h> #include<string.h> main() { char a[]="\n123\\"; printf("%d,%d\n",strlen(a),sizeof(a)); }

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析: 转义字符'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第8题:

    下面程序的运行结果是 ( ) include include main( ) { char * a="

    下面程序的运行结果是 ( ) # include<stdio.h> # include<string.h> main( ) { char * a="AbcdEf",* b="aBcD" a + +;b + +; printf("%d\n",strcmp(a,b)); }

    A.0

    B.负数

    C.正数

    D.无确定值


    正确答案:C

  • 第9题:

    有以下程序include.main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));} 程

    有以下程序 #include.<string.h> main() { char *p="abcde\ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是

    A.12

    B.15

    C.6

    D.5


    正确答案:D
    解析:本题首先定义了一个字符型指针变量p,并用一个宇符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。字符串的结束标记为“\0”,其长度为“\0”前的字符个数,故长度为5。所以4个选项中D正确。

  • 第10题:

    下列程序的输出结果是()。 include include main() {char a[]="\n123\\";pr

    下列程序的输出结果是( )。 #include<stdio.h> #include<string.h> main() { char a[]="\n123\\"; printf ("%d,%d\n",strlen(a),sizeof(a)); }

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析:转义字符'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第11题:

    有以下程序: include main( ) {intc = 35; printf( "% d \n" , e&c); }程序运行

    有以下程序: #include <stdio.h> main( ) { intc = 35; printf( "% d \n" , e&c); } 程序运行后输出结果是( )。

    A.0

    B.70

    C.35

    D.1


    正确答案:C
    解析:按位与运算符“&”的运算规则是:如果两个相应的二进制位都为1,则该位的结果为1,否则为0。因为本题中相与的两个数相同,即对应位的二进制数相等,所以结果为其值本身。

  • 第12题:

    有以下程序:include include main(){char *p[10]={"abc","aabdfg","dcdbe"

    有以下程序: #include <stdio.h> #include <string.h> main() { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4])); } 执行后的输出结果是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    解析:p是由10个指向字符型数据的指针元素组成的指针数组,其中前5个数组元素进行了初始化。p[4]="cd",strlen(str)是统计字符串str中字符的个数(不包括终止符'\0'),输出结果为2。

  • 第13题:

    有以下程序 include main( ) { printf("%d\n",NULL); } 程序运行后的输出结果是

    有以下程序

    #include <stdio.h>

    main( )

    { printf("%d\n",NULL); }

    程序运行后的输出结果是

    A.0

    B.1

    C.-1

    D.NULL没定义,出错


    正确答案:A
    解析:因为在头文件stdio.h中,已对NULL作了宏定义,其值为0。

  • 第14题:

    有以下程序:include include main( ) {char a[ 7 ] = "a0 \0a0 \0";int i,

    有以下程序:#include <stdio.h>#include <string.h>main( ) { char a[ 7 ] = "a0 \0a0 \0"; int i,j; i = sizeof(a); j = strlen(a); printf(" % d %d \n" ,i,j); }程序运行后的输出结果是( )。

    A.22

    B.76

    C.72

    D.62


    正确答案:C
    解析:C语言.中以,'\0'作为字符串的结束符,且strlen函数计算的是,'\0',字符前的所有字符的个数,故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof运算符是计算变量或数组所分配到的内存空间的大小,所以本题的sizeof(a)为7。

  • 第15题:

    有下面程序段 #include"stdio.h" #include"string.h" main() { char a[3][20]={{"china"},{"isa"},{"bigcountry!"}}; chark[100]={0},*p=k; int i; for(i=0;i<3;i++) {p=strcat(p,a[i]);} i=strlen(p); printf("%d\n","i);} 则程序段的输出结果是

    A.18

    B.19

    C.20

    D.21


    正确答案:B
    解析: 字符串连接函数streat的调用形式如下:strcat(s1,s2)。此函数将s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。

  • 第16题:

    以下程序的输出结果是#include "stdio.h"main(){ int a=065; printf("%d\n",--a);}


    正确答案:52
    本题主要考查数据的格式化输出。程序首先给整型变量a赋一个八进制数的初值,根据输出的格式“%d”我们知道,最终需要输出一个十进制数的结果,因此,首先需要将八进制数转换为十进制数,这个过程我们可以通过二进制数来实现,即首先将八进制转换为二进制,然后将二进制转换为十进制。
    由于2的3次方等于8,因此,一位八进制数对应于三位二进制数,因此,65对应的二进制数为110101,其中6对应前面的110,而5对应后面的101,再将这个二进制数转换为十进制为32+16+4+1=53,再自减1后输出。因此,本题程序的输出结果为52。

  • 第17题:

    有以下程序 include main() { char a=4; printf("%d/n,a=a

    有以下程序 #include <stdio.h> main() { char a=4; printf("%d/n,a=a<<1); } 程序的运行结果是______。

    A.40

    B.16

    C.8

    D.4


    正确答案:C
    解析:“”是按位左移运算符,左移一位相当于该数乘以2,左移两位相当于该数乘以2的2次方,所以本题相当于将4乘以2,结果为8。

  • 第18题:

    有以下程序: include main( ){ int m =12,n=34;printf( "% d% d" ,m++ , ++n);printf(

    有以下程序: #include <stdio.h>main( ){ int m =12,n=34; printf( "% d% d" ,m++ , ++n); printf("% d% d \n" ,n ++ , ++m); }程序运行后的输出结果是( )。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:程序执行printf("%d%d",m++,++n);后,输出的是m和n+1的值1235,然后m+1=13,再执行printf("%d%d\n",n++,++m);输出n和m+1的值3514,之后n+1=36。这里要注意的是m++和++m的区别:m++是先输出m的值,再执行m++;++m是先执行++m,再输出m的值。

  • 第19题:

    下列程序的输出结果是()。includeincludemain(){ char a[]="\n123\\";print

    下列程序的输出结果是( )。#include<stdio.h>#include<string.h>main(){ char a[]="\n123\\"; printf("%d,%d\n",strlen(A) ,sizeof(A) );}

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析:转义字符,'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第20题:

    以下4个程序中,完全正确的是

    A.#include <stdio.h> main(); {/*programming*/ printf("programming!\n");}

    B.#include <stdio.h> main(); {/*/ programming /*/ printf("programming!\n");}

    C.#include <stdio.h> main() {/*/*programming*/*/ printf("programming!\n");}

    D.include <stdio.h> main() {/*programming*/ printf("programming!\n");}


    正确答案:B
    解析:选项A)main();的分号是错误的,不能有分号;选项C)的注释语句多了两个*号;选项D)include前面没有#。

  • 第21题:

    下面程序段的输出为( )。 include "stdio.h" main { printf("%d\n",12<<2); }A.0SXB

    下面程序段的输出为( )。 #include "stdio.h" main { printf("%d\n",12<<2); }

    A.0

    B.47

    C.48

    D.24


    正确答案:C
    本题考查位运算的运算原理。<<为左移运算符,运算符的左边是移位对象;右边是整型表达式,代表左移的位数,左移时,右端(低位)补0;左端(高位)移出的部分舍弃。

  • 第22题:

    以下四个程序中,完全正确的是______。A.include main(); {/*programming*

    以下四个程序中,完全正确的是______。

    A.#include <stdio.h> main(); {/*programming*/ printf("programming!\n");}

    B.#inc lude<stdio.h> main() {/*/programming/*/ printf("programming!\n");}

    C.#include <stdio.h> main() {/*programming*/ printf("programming!\n");}

    D.include<stdio.h> main() {/*/*programming*/*/ printf("programming!\n");}


    正确答案:C
    解析:C程序中注释用“/*”和“*/”括起来,它可以出现在程序中任何合适的地方。选项A中“main();”是—个函数声明语句,下面的大括号及其内容作为—个语句块,应放在程序的大括号中,故选取项A错误;选项B中的注释语句不正确,因为程序在编译时认别到两次“/*”作为注释的开始,但为识别到“*/”作为注释的结束,故选项B错误;选项 D的“include”前缺少“#”,故选项D错误。

  • 第23题:

    以下程序 include include main() { char*p1="abc",*p2="ABC",str[50]="xy

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

    A.xyzabcABC

    B.zabeABC

    C.yzabcABC

    D.xyabcABC


    正确答案:D
    解析:strcat(p1,p2)将字符串abcABC防到了*p1所指向的存储单元中:strcpy在本题将abcABC复制到str+2所指向的存储单元中,即覆盖原str数组中的字符z及其后的所有字符,故str的值为“xyabcABC”。

  • 第24题:

    有以下程序:includeincludemain(){char str[][20]={"Hello","Beijing"},*P

    有以下程序: #include <stdio.h> #include <string.h> main() { char str[][20]={"Hello","Beijing"},*P=str[0]; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是( )。

    A.0

    B.5

    C.7

    D.20


    正确答案:C
    解析:本题考查字符数组和指针的运用。strlen是测试字符串长度的函数,函数的值为字符串的实际长度,不包括'/0'在内。str[][20]={"Hello","Beijing"}定义了一个2行20列的数组,数组的首地址是&str[0][0],p+20是从首地址向后移了20位,指针指向了str[1][0]处,此时求字符串的长度,是从str[1][0]开始的,即“Beijing”的长度,所以输出结果是7。