单选题有以下程序:#includemain(){ short c=124; c=c______; printf(%d,c);}若要使程序的运行结果为248,应在下画线处填入的是(  )。A >>2B |248C &0248D <<1

题目
单选题
有以下程序:#includemain(){ short c=124; c=c______; printf(%d,c);}若要使程序的运行结果为248,应在下画线处填入的是(  )。
A

>>2

B

|248

C

&0248

D

<<1


相似考题
更多“有以下程序:#include<stdio.h>main(){ short c=124; c=c______; print”相关问题
  • 第1题:

    以下程序的输出结果是______。 include define FUDGE(y)2.84+y define PR(a) printf(

    以下程序的输出结果是______。 #include<stdio.h> #define FUDGE(y) 2.84+y #define PR(a) printf("%d",(int)(a)) #define PRINT1(a) PR(a);putchar('\n') main() { int x=2; PRINT1(FUDGE(5)*x); }

    A.11

    B.12

    C.13

    D.15


    正确答案:B
    解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

  • 第2题:

    有以下程序 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。

  • 第3题:

    有以下程序: include difine F(X, Y)(X)*(Y)main(){int a=3, b=4; print("% d\n",

    有以下程序: # include<stdio. h> # difine F(X, Y) (X)*(Y) main() { int a=3, b=4; print("% d\n", F(a++, b++)); } 程序运行后的输出结果是______。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:F(a++,b++)的宏展开为:F(a++,b++)=(a++)*(b++)=a*b=3×4=12,因此printf函数的输出结果是12。

  • 第4题:

    有以下程序 include main() { int y=9; for( ; y>0; y--) if(y%

    有以下程序 #include <stdio.h> main() { int y=9; for( ; y>0; y--) if(y%3==0) printf("%d",--y); } 程序的运行结果是

    A.741

    B.963

    C.852

    D.875421


    正确答案:C
    解析:本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出--y的值,即先将y减1,然后输出y的值。故当y等于9、6、3时会输出,输出值分别为8、5、2。所以应该选择C。

  • 第5题:

    有以下程序: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。

  • 第6题:

    有以下程序: 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。

  • 第7题:

    下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

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

    include<stdio.h>

    main()

    {int a=25;

    fun(&A);

    }

    fun(int *x)

    { printf("%d\n",++*x);

    }


    正确答案:26
    26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

  • 第8题:

    下列4个程序中,完全正确的是()。A.include main(); (/*programming*/ printf("programm

    下列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

  • 第9题:

    以下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前面没有#。

  • 第10题:

    有以下程序: #include <stdio.h> main( ) { int a=7; while(a--); print[("%d\n",a); } 程序运行后的输出结果是( )。

    A.-l

    B.0

    C.1

    D.7


    正确答案:A
    此题考查a--和--a之间的区别,当while(a--)为真循环执行,a--是执行再减1,所以答案选择A。

  • 第11题:

    有以下程序: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。

  • 第12题:

    以下程序输出结果是 include main ( ){int i=0,a=0; while ( i<2 0 ){for(;;){if ((i

    以下程序输出结果是 #include <stdio.h> main ( ) { int i=0,a=0; while ( i<2 0 ) { for(;;) { if ((i%10) ==0) break; else i--; } i+=11; a+=i; } print f ( "%d\n" , a); }

    A.21

    B.32

    C.33

    D.11


    正确答案:B
    解析:break语句只能在循环体和switch语句体内使用。本题程序为在while循环中嵌套for循环。先看内层for循环,该循环的3个表达式全部省略,循环条件始终为真,但循环体内的break语句为终止循环的条件。首先,由初始条件判断外层循坏while括号内表达式的值,该值为真,执行本次while循环,即执行循环体内的订语句,判断该表达式后面括号里表达式的值为真,执行break语句,跳出内层循环,执行下面的语句,此时i和a的值均变为11;回到外层循环,判断表达式“i20”仍为真,执行内层循环语句,此时if条件不满足,执行else语句,i的值为10,继续内层循环,if语句条件满足,执行break语句,跳出内层循环,执行下面的语句后,i和a的值分别是21和32。再判断外层循环的条件为假,结束循环.所以,4个选项中B为所选。

  • 第13题:

    有以下程序:include main(){ inta=1,b=2,c=3,x; x=(ab)&c; printf("%d\n",x);}程

    有以下程序: #include <stdio.h> main() { int a=1,b=2,c=3,x; x=(ab)&c; printf("%d\n",x); } 程序的运行结果是( )。

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:在C语言中,整型数据在内存中是按二进制形式存放的,位运算就是直接对这些二进制进行操作的一系列运算符。例如题目中a、b、c的值分别为1、2、3,那它们在内存中存放的样子就是;0001、0010、0011(由于数据不大,int类型本来要占4字节也就是32位二进制的,这里就省写为4位了)。“^”运算符的作用是:按位异或。意思是:两个操作数对应的二进制位如果相异,则结果对应的二进制位为1,否则结果对应二进制位为0。所以00010011=0011。“&”运算符的作用是:位与。意思是:如果两个操作数对应的二进制位同时为1,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0011&0011=0011,也就是十进制的3,故本题最终输出结果为3,应该选择D。

  • 第14题:

    有以下程序:include main(){ printf("%d\n",NULL);}程序运行后的输出结果是()。A.0B.1C

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

    A.0

    B.1

    C.-1

    D.NULL没定义,出错


    正确答案:A
    解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数为0。所以,4个选项中选项A符合愿意。

  • 第15题:

    有以下程序:include main(){inty=9;for( ; y>0; y--)if(y%3==0) printf("%d", --y);}

    有以下程序: #include <stdio.h> main() {int y=9; for( ; y>0; y--) if(y%3==0) printf("%d", --y); } 程序的运行结果是( )。

    A.741

    B.963

    C.852

    D.875421


    正确答案:C
    解析:本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出--y的值,即先将y减1,然后输出y的值。故当y等于9、6、3时会输出,输出值分别为8、5、20所以应该选择C。

  • 第16题:

    有以下程序 include main() { int a=1, b=2, c=3, x; x=(a^b)&c; pri

    有以下程序 #include <stdio.h> main() { int a=1, b=2, c=3, x; x=(a^b)&c; printf("%d\n",x); } 程序的运行结果是

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:在C语言中,整型数据在内存中是按二进制形式存放的,位运算就是直接对这些二进制进行操作的一系列运算符。例如题目中a、 b、c的值分别为1、2、3,那它们在内存中存放的样子就是:0001、0010、0011(由于数据不大,int类型本来要占4字节也就是32位二进制的,这里就省写为4位了)。
    “^”运算符的作用是:按位异或。意思是:两个操作数对应的二进制位如果相异,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0001^0010=0011。“&”运算符的作用是:位与。意思是:如果两个操作数对应的二进制位同时为1,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0011&0011=0011,也就是十进制的3,故本题最终输出结果为3,应该选择D。

  • 第17题:

    以下程序的输出结果是______。 include define FUDGE(y)2.84+y define PR(a)printf("

    以下程序的输出结果是______。 #include<stdio.h> #define FUDGE(y) 2.84+y #define PR(a) printf("%d",(int)(a)) #define PRINT() PR(s) ;putchar('\n') main() { intx=2; PRINT1 (FUDGE(5)*x); }

    A.11

    B.12

    C.13

    D.15


    正确答案:B
    解析:在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

  • 第18题:

    以下程序的输出结果是#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。

  • 第19题:

    有以下程序 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。

  • 第20题:

    有以下程序:include main( ){char P[] = {'a','b','c'} ,q[]: "abc";printf( "% d % d

    有以下程序:#include <stdio.h>main( ){ char P[] = {'a','b','c'} ,q[]: "abc"; printf( "% d % d \ n", sizeof(p), sizeof(q) );}程序运行后的输出结果是( )。

    A.44

    B.33

    C.34

    D.43


    正确答案:C
    解析:sizeof运算符是计算变量或数组所分配到的内存空间的大小,p[]={'a','b','c'}使数组的长度等于字符的个数3;q[]="abc"使数组的长度等于字符个数加上1个串结束符,'\0',共4个字符,其中,'\0',占用一个存储空间。故本题的输出结果是34。

  • 第21题:

    以下四个程序中,完全正确的是______。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错误。

  • 第22题:

    有以下程序: 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。因为本题中相与的两个数相同,即对应位的二进制数相等,所以结果为其值本身。

  • 第23题:

    下列程序的输出结果是()。 include main() {int a=4;print f("%d\n", (a+=a-=a*a)); }A

    下列程序的输出结果是( )。 #include<stdio.h> main() { int a=4; print f("%d\n", (a+=a-=a*a)); }

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a-a-a*a=-2):②第二个表达式 (a+=a-=a*a)=(a=a+a=-24)。