首页>计算机等级考试>模拟试题>正文
最经典的C语言试题

www.zige365.com 2010-7-15 8:44:43 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

 

【例31】(2004年9月)以下程序运行后的输出结果是_______。

main()

{

    int a,b,c;

    a=25;

    b=025;

    c=0x25;

    printf("%d  %d  %d \n"a,b,c);

}

【答案】25  21  37

【考点解析】本题中有十进制整数值为25的a,八进制整数值为025的b,十六进制整数值为0x25的c,printf函数要求输出结果是十进制整数,且中间要用空格分隔。那么三个变量的十进制整数值分别是25,21,37。即25  21  37也就是答案。

4.2选择结构

一、选择题:

【例1】(2002年9月)有以下程序

main()

{

    int a=15,b=21,m=0;

    switch(a%3)

     {

    case 0:m++ ;break;

    case 1:m++;

    switch(b%2)

    {

       default:m++;

       case 0:m++;break;

     }

     }

    printf("%d\n",m);

}

程序运行后的输出结果是( )。

A.   1             B.  2            

C.   3             D.  4  

【答案】A

【考点解析】在本题中是运行switch语句,当中有break语句,而break语句的作用是跳出switch语句,即如果没有break语句,程序将继续执行到switch语句的结束。程序中,首先执行表达式a%3=0,则执行case 0,即m=m+1=1;所以最后输出1。

 

【例3】(2003年4月)有以下程序

main()

{

    int i=1,j=1,k=2;

    if((j++||k++)&&i++)

    printf("%d,%d,%d\n",i,j,k);

}

执行后输出结果是( )。

A.   1,1,2           B.  2,2,1          

C.   2,2,2           D.  2,2,3   

【答案】C

【考点解析】在本题中,先计算if语句后面表达式(j++||k++)&&i++,当j=j+1=2成立时,程序并不继续运行k++,即k=2,再运行i=i+1=2,最后输出i、j、k的值分别是2,2,2。

 

 

【例4】(2003年4月)有以下程序

main()

{

    int a=5,b=4,c=3,d=2;

    if(a>b>c)

       printf("%d\n",d);

    else

    if((c-1>=d)==1)

       printf("%d\n",d+1);

    else

    printf("%d\n",d+2);

}

执行后输出结果是( )。

A. 2                       B.   3  

C. 4                       D.  编译时有错,无结果

【答案】B

【考点解析】在C语言中if总是与离它最近的else语句配对。首先执行第一个if语句,判断表达式(a>b>c),”>”运算符为左结合性,即a>b>c的值为假,所以执行else后面的语句。而else后面语句又是if else语句,判断表达式((c-1>=d)==1),整个表达式成立,则执行输出d+1=3。

本新闻共24页,当前在第10页  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
最经典的C语言试题