itgle.com

阅读以下程序includemain(){Int Case;float printF;printf("请输入2个数:");scanf("%d阅读以下程序 #include<stdio.h> main() {Int Case;float printF; printf("请输入2个数:"); scanf("%d %f",&Case,&printF); printf("%d%f\n",Case,printF); } 以下说法正确的是( )。A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF

题目
阅读以下程序includemain(){Int Case;float printF;printf("请输入2个数:");scanf("%d

阅读以下程序 #include<stdio.h> main() {Int Case;float printF; printf("请输入2个数:"); scanf("%d %f",&Case,&printF); printf("%d%f\n",Case,printF); } 以下说法正确的是( )。

A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF不能用作用户自定义标识符

B.定义语句出错,Int无法被识别

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出Case的值


相似考题
参考答案和解析
正确答案:B
解析:C语亩足一种大小写敏感的语言,因此Int应为int,而Case printF则可以使用。
更多“阅读以下程序includemain(){Int Case;float printF;printf("请输入2个数:");scanf("%d 阅读以下程序 #include<stdio.h> main() {Int Case;float printF; printf("请输入2个数:"); scanf("%d %f",Case,printF); printf("%d%f\n",Cas”相关问题
  • 第1题:

    若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是

    A.switch(x) {case 1.0:printf("*\n"); case 2.0:printf("**\n");}

    B.switch((int)x); {case 1:printf("*\n"); case 2:printf("**\n");}

    C.switch(a+B) {case 1:printf("*\n"); case 2+1:printf("**\n");}

    D.switch(a+B) {case 1:printf("*\n"); case c:printf("**\n");}


    正确答案:C
    解析: C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。

  • 第2题:

    请阅读以下程序:includemain(){int x=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case

    请阅读以下程序: #include<stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break;} case 2: a++,b++;break;} printf("a=%d,b=%d\n",a,b); 上面程序的输出结果是

    A.a=2,b=1

    B.a=1,b=1

    C.a=1,b=0

    D.a=2,b=2


    正确答案:A

  • 第3题:

    *((int *)pval)/=2; //我想问一下,这个语法怎么理解,太复杂了 具体代码如下。

    #include "stdio.h"void half(void *pval,char type);main(){ int i=20; long l=100000; float ff=12.456; double d=123.044444; printf("%d\n",i); printf("%ld\n",l); printf("%f\n",ff); printf("%lf\n",d); half(&i,'i'); half(&l,'l'); half(&ff,'ff'); half(&d,'d'); printf("\n%d",i); printf("\n%ld",l); printf("\n%f",ff); printf("\n%lf",d); return 0; }void half(void *pval,char type){ switch(type) { case 'i': { *((int *)pval)/=2; //我想问一下,这个语法怎么理解,太复杂了 break; } case 'l': { *((long *)pval)/=2; break; } case 'ff': { *((float *)pval)/=2; break; } case 'd': { *((double *)pval)/=2; break; } } }


    *((int *)pval)/=2; 一步步讲解: 1,(int*)pval 是把pval指针强制类型转化成 int*,这时pval可看作是个指向int的指针。为了方便说明我们可以int *p = (int*)pval;以后就可以用p代替(int*)pval了。 2,*(p) /=2;也就是 *p /= 2; 这里括号可以去掉了。 /=类似+=、*=, *p /=2;就是 *p = *p/2;

  • 第4题:

    若有以下定义,则正确的swish语句是______。 float x;int a,b;

    A.switch(x) {case 1.0:printf("*\n"); case 2.0:printf("**\n"); }

    B.switch(x) {case 1,2:printf("*\n"); case 3:printf("**\n"); }

    C.switch(a+b) {case 1:printf("\n"); case 1+2:printf("**\n"); }

    D.switch(a+b); {case 1:printf("*\n"); case 2:printf("**\n"); }


    正确答案:C
    解析:switch后必须是整型或字符型的表达式,因此选项A、B错误;表达式的括号外没有分号,因此选项D错误。

  • 第5题:

    有以下程序: include main ( ) int i;for(i =0;i <3 ;i ++ )switch (i)case 0: printf

    有以下程序: #include <stdio.h> main ( ) int i; for(i =0;i <3 ;i ++ ) switch (i) case 0: printf(" % d" ,i); case 2: printf(" % d" , i); default: printf( "% d" , i);程序运行后的输出结果是( )。

    A.22111

    B.21021

    C.122

    D.12


    正确答案:C
    解析:程序中没有使用break终止switch语句的执行。当i:0时,执行第一个case语句,因为它后面没有break,所以一直到执行完default语句结束,输出3个0,再执行下一循环。所以只有选项C)正确。

  • 第6题:

    下面的程序在编泽时产生错误,其出错原因是()。includemain(){int 1_case;float printF;

    下面的程序在编泽时产生错误,其出错原因是( )。 #include<stdio.h> main() {int 1_case;float printF; printf("请输入2个数:"); scanf ("%d%f",&1_case,&printF); printf("%d%f\n",1_case,printF); }

    A.定义语句出错,1_case不能作为变量名

    B.定义语句出错,printF不能用作用户自定义标识符

    C.定义语句无错,scanf不能作为输入函数使用

    D.定义语句无错,printf不能输出1_case的值


    正确答案:A
    解析:C语言变量名可由数字,字母,下划线构成,但首字符不能为数字。

  • 第7题:

    阅读以下程序

    #include<stdio,h>

    main( )

    { int case;float printF;

    printf(“请输入2个数:”);

    scanf(“%d%f”,&zase,&rintF);

    prinff(“%d%f\n”,case,printF);

    }

    该程序在编译时产生错误,其出错原因是

    A.定义语句出错,ca8e是关键字,不能用作用户自定义标识符

    B.定义语句出错,pfintF不能用作用户自定义标识符

    C.定义语句无错,scanf不能作为输入函数使用

    D.定义语句无错,printf不能输出case的值


    正确答案:A
    解析:标识符不能与c编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名,否则程序在编译时会出现错误。题目源程序中使用了已经预定义的关键字car,所以将出现错误。

  • 第8题:

    阅读以下程序: #include<stdio.h> main( ) {int case;float printF; printf("请输人2个数:"); scanf("%d%fl"&case,&printF); printf("%d ofof\n",case,printF); } 该程序在编译时产生错误,其出错原因是( )。

    A.定义语句出错,case是关键字,不能用做用户自定义标识符

    B.定义语句出错,printF不能用做用户自定义标识符

    C.定义语句无错,scanf不能作为输入函数使用

    D.定义语句无错,printf不能输出case的值


    正确答案:A
    本题中定义了整形变量case,但case是关键字,关键字不能用做标识符。单精度printF不是关键字,因为标识符区分大小写。所以A不正确。

  • 第9题:

    有以下程序

    #include

    main()

    { int s;

    scanf("%d",&s);

    while(s>0)

    { switch(s)

    { case1:printf("%d",s+5);

    case2:printf("%d",s+4); break;

    case3:printf("%d",s+3);

    default:printf("%d",s+1);break;

    }

    scanf("%d",&s);

    }

    }

    运行时,若输入1 2 3 4 5 0<回车>,则输出结果是

    A.6566456

    B.66656

    C.66666

    D.6666656


    正确答案:A

  • 第10题:

    若有以下定义:float x;int a,b,c=2;,则正确的switch语句是( )

    A.switch(x) { case 1.0:printf("*\n"); case 2.0:printf("**\n"); }

    B.switch(int(x)) { case 1:printf("*\n"); case 2:printf("**\n"); }

    C.switch(a+b) { case 1:printf("*\n"); case 1+2:printf("**\n"); }

    D.switch(a+B){ case 1:printf("*\n"); case c:printf("**\n"); }


    正确答案:C

  • 第11题:

    若有定义:float x=1.5;int a=1,b=3,c=2; 则正确的switch语句是( )。

    A.switch(x) { case 1.0: printf("*\n"); case 2.0: printf(" * * \n" );

    B.switch((iht)x); { case 1: printf(" * \n" ); case 2: printf(" * * \n" ); }

    C.switch(a +b) { case 1: printf(" * \n" ); case 2 + 1: printf(" * * \n" ); }

    D.switch(a + b) { case 1: pfintf(" * \n" ); case c: pfintf(" * * \n"); }


    正确答案:C
    解析:选项A)中case后面的表达式为浮点型,选项D)中case后面的表达式存在字符变量c,故选项A)、D)错误;在选项B)中,switch后面的表达式加了分号显然有错。

  • 第12题:

    单选题
    阅读以下程序:#include main(){ int case; float printF; printf("请输入2个数:"); scanf("%d %f",&case,&printF); printf("%d %f",case,printF);}该程序编译时产生错误,其出错原因是(  )。
    A

    定义语句出错,case是关键字,不能用作用户自定义标识符

    B

    定义语句出错,printF不能用作用户自定义标识符

    C

    定义语句无错,scanf不能作为输入函数使用

    D

    定义语句无错,printf不能输出case的值


    正确答案: C
    解析:
    在C语言中,关键字又称保留字,它是系统预先定义的,具有特定含义的标识符,故不允许用户重新定义。case为C语言中的关键字,因此用户不能再定义标识符为case的变量。答案选择A选项。

  • 第13题:

    有以下程序 include main() { int n,*p=NULL; *p=&n; printf("

    有以下程序 #include <stdio.h> main() { int n,*p=NULL; *p=&n; printf("Input n:");scanf("%d",&p);printf("output n:");printf("%d\n",p); } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是

    A.int n,*p=NULL;

    B.*p=&n;

    C.scanf("%d",&p)

    D.printf("%d\n",p);


    正确答案:A
    解析:指针变量在定义时需要加星号,而在赋值时则不用,故选项B)错误。本题中,scanf()函数和printf()函数都是要对指针变量p指向的地址处的数据进行访问,不是变量本身。选项C)中多了取地址运算符,选项D)中少了指针运算符。

  • 第14题:

    以下程序段的运行结果是( )。 include main() {int x=2,y=1: switch(x) {case 1: switch

    以下程序段的运行结果是( )。 include<stdio.h> main() {int x=2,y=1: switch(x) {case 1: switch(y) {case 0:printf("x=2,y=1\n");break; case 1:printf("y=1\n");break; } case 2:printf("x=2\n"); } }


    正确答案:x=2
    x=2

  • 第15题:

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

    main()

    (int a=2,b=7,c=5;

    switch(a>0)

    {case 1:switch(b<0)

    {case 1:switch(");break;

    case 2:printf("!");break;

    }

    case 0:switch(c==5)

    {case 0:printf("*");break;

    case 1:printf("");break;

    case 2:printf("$");break;

    }

    default:printf ("&");

    }

    printf("\n");

    }


    正确答案:#&
    #& 解析:刚开始时,switch后面的表达式a>0为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case 0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。

  • 第16题:

    若有以下定义:float x;int a,b; 则错误的switch语句是________。

    A. switch(x){case 1.0:printf("*\n"); case 2.0:printf("*\n"); }

    B. switch(a){case 1:printf("*\n");case 2:printf("*\n"); }

    C. switch(a+b) {case 1:printf("*\n"); case 1+2:printf("*\n"); }

    D. switch(a+b);{case 1:printf("*\n");case 2:printf("*\n"); }


    参考答案:D

  • 第17题:

    以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。

    include <stdio.h>

    main()

    { int n, s;

    printf("Enter a number:"); scanf("%d",&n);

    printf("Output: ");

    do

    { s=n%10; printf("%d",s); [ ]; }

    while (n!=0);

    printf("\n');

    }


    正确答案:n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10
    n/=10或n=n/10或n=(n-s)/10或n=(n-n%10)/10 解析:根据s=n%10可知:此操作可以将输入的数据n的最后—位赋给s,根据题目的要求是要将输入的数据逆序输出,现在已经将原数据的个位输出,在其后如果执行n/=10司将原数据的个位数去掉,满足do....while的条件继续s=n%10操作,此时可求出十位上的数进行输出,继续执行n/=10操作,与上相同最后将百位上的数进行输出,所以该题答案为: n/=10。

  • 第18题:

    执行下面程序的正确结果是 ( ) main() {float a=1.9 switch(A) { case 0:printf("0000"); case 1:printf("1111"); case 2:printf("3333"); } printf("%f",A) ; }

    A.1.900000

    B.111133331.900000

    C.33331.900000

    D.00001111233331.900000


    正确答案:B

  • 第19题:

    若有以下定义,则正确的switch语句是______。float x;int a,b;

    A.switch(x) { case 1.0:printf("*\n"); csse 2.0:printf("**\n"); }

    B.switch(x) { case 1,2:printf("*\n"); case 3:printf("**\n"); }

    C.switch(a+b) { case 1:printf("\n"); case 1+2:printf("**\n"); }

    D.switch(a+b); { case 1:printf("*\n"); case 2:printf("**\n"); }


    正确答案:C

  • 第20题:

    若有定义float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是

    A.swimh(x) {case 1.0:printf("*\n"); case 2.0:printf("**\n");}

    B.switch((int)x); {case 1:printf("*\n"); case 2:printf("**\n");}

    C.switch(a+

    D. {case 1:pfintf("*\n"); case 2+1:pfintf("**\n");}switch(a-I-{case 1:pfintf("*\n"); case c:printf("**\n");}


    正确答案:C
    解析: C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰且直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。

  • 第21题:

    若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是______。

    A.switch (x) {case 1.0: printf("*\n"); case 2.0: printf("**\n");}

    B.switch ( (int)x); {case 1: printf("*\n"); case2: printf("**\n");}

    C.switch (a+b) {case 1:printf("*\n"); case 2+1: printf("**\n");}

    D.switch (a+b)) {case 1: pfintf("*\n")}; case c: printf("**\n"));}


    正确答案:C
    解析:在switch语句中,case后的常量表达式只能是整型或等价于整型的常量,而选项A中case后面的表达式为浮点型,选项D中case后面的表达式存在字符变量“c”,故选项A与选项D错误;在选项B中,switch后面的表达式加了分号显然格式有误。故选项C正确。

  • 第22题:

    有以下程序:includemain(){char k; int i; for(i=1;i<3;i++) {scanf("%c",&k);swi

    有以下程序: #include <stdio.h> main() { char k; int i; for(i=1;i<3;i++) { scanf("%c",&k); switch(k) { case '0': printf("another\n"); case '1': printf("number\n"); } { } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )。

    A.another number

    B.another number another

    C.another number

    D.number number


    正确答案:C
    解析:本题中没有使用break终止switch语句的执行,当k为'0'时,执行完case'0'后的输出后将继续执行case'1'后的输出;当k为'1'时,执行case'1'后的输出。

  • 第23题:

    阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。【C代码1】 float adjustSalary(int service_year,int age,float salary) { if( service_year <=5 ) { if( age > 30 ) salary *= 1.2; } else salary *= 2.0; return salary;} 【C代码2】 void foo(int coin) { switch (coin) { case 1: printf("Cent\n"); case 5: printf("Nicke1\n");break; case 10: printf("Dime\n"); case 25: printf("Quarter\n"); }} 【C代码3】 int getSum(int n){ int t, i = 0, sum = 0; while ( i < n ) { scanf("%d", &t); if( t<0 ) continue; sum += t; i++; } return sum;} 问题:3.1 【问题1】(3分)对于【C代码1】,写出下面的函数调用后x1、x2和x3的值。x1 = adjustSalary(1,25,9000.0);x2 = adjustSalary(8,32,7000.0);x3 = adjustSalary(5,41,5000.0); 问题:3.2 【问题2】(6分)(1)写出函数调用为foo(1)的输出结果;(2)写出函数调用为foo(5)的输出结果;(3)写出函数调用为foo(10)的输出结果;(4)写出函数调用为foo(25)的输出结果。 问题:3.3 【问题3】(6分)(1)简要说明【C代码3】中的函数getSum()的功能;(2)程序员小王将函数getSum改写后得到下面的函数getSum_v2(即用for语句来描述循环)。请问,getSum_v2的功能是否与【C代码3】的getSum完全相同,若不同,请说明原因。int get Sum_v2(int n){int t,i=0,sum=0;for(i=0;1 scanf("%d",&t);if(t<0)continue;sum+=t;}return sum;}


    答案:
    解析:
    【参考答案】(1)x1=9000.000000(2)x2=14000.000000(3)x3=6000.000000【参考答案】(1)foo(1):Cent Nickel(2)foo(5):Nickel(3)foo(10):Dime Quarter(4)foo(25):Quarter
    【参考答案】(1)函数getSum()是求n个不小于0的整数之和。(2)函数getSum_v2的功能与函数getSum不同,getSum()是求n个不小于0的整数之和,计算和的数目总数是n个,而getSum_v2是总共输入了n个数,这n个数种有大于等于0,也有小于0的数,最终只把大于等于0的数进行求和,因此最终计算的和的个数有可能是小于n的。
    【解析】

    【解析】 对于x1,service_year=1,age=25,salary=9000.0,首先判断service_year<=5,因此再判断age<30,不进行任何运算,salary仍为9000.0,由于salary为float类型数据,因此输出为9000.000000。 对于x2,service_year=8,age=32,salary=7000.0,首先判断service_year>5,因此直接进行else中的运算,salary=7000.0*2.0=14000.0,由于salary为float类型数据,因此输出为14000.000000。 对于x3,service_year=5,age=41,salary=5000.0,首先判断service_year<=5,因此再判断age>30,进行运算salary=5000.0*1.2=6000.0,由于salary为float类型数据,因此输出为6000.000000。【解析】foo(1):coin=1,执行printf(“Cent\n”),输出Cent并回车,继续执行printf(“Nickel\n”),输出Nickel并回车,再执行break,结束foo函数。foo(5):coin=5,执行printf(“Nickel\n”),输出Nickel并回车,再执行break,结束foo函数。foo(10):coin=10,执行printf(“Dime\n”),输出Dime并回车,继续执行printf(“Quarter\n”),输出Quarter并回车,结束foo函数。Foo(25):coin=25,执行printf(“Quarter\n”),输出Quarter并回车,结束foo函数。【解析】(1)函数getSum()是求n个不小于0的整数之和。(2)函数getSum_v2的功能与函数getSum不同,原因:在getSum中,当t<0时,继续运行scanf函数获得t,而不会运行i++运算,i的值不会改变,最终会获得n个不小于0的整数并求和;而在getSum_v2中,当t<0时,首先进行i++,再继续scanf函数,因此当输入的数出现负值时,会导致最终运算的值可能少于n个。