考研C程序设计在线题库每日一练(六十六)
以下是希赛网给大家分享考研C程序设计在线题库每日一练,希望通过刷题可以帮助大家巩固重要知识点,对知识点查漏补缺,祝愿大家能顺利通过考试!
本文提供考研C程序设计在线题库每日一练,以下为具体内容
1、判断字符串a和b相等,应当使用( )。
A、if(a==b)
B、if(a=b)
C、if(strcmp(a,b))
D、if(!strcmp(a,b))
2、关于变量,以下叙述不正确的是( )。
A、函数调用结束后,局部变量所占用的空间被释放
B、在一个函数中定义的静态变量不能被另一个函数访问
C、当局部变量与全局变量同名时,在局部变量作用域范围内,全局变量不起作用
D、没有申明存储类别的局部变量都是自动变量
3、下列说法中正确的是( )。
A、函数调用不占运行时间,只占编译时间
B、宏替换不占运行时间,只占编译时间
C、有参数的宏定义就是函数
D、在定义宏时,宏名与带参数的括弧之间可以加空格
4、若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为( )。
A、float
B、int
C、char
D、double
5、下面程序段不是死循环的是( )。
A、int j=50; while(1){j=j%100+1; if(j>100) break;}
B、for(;;)
C、int k=0; do{++k;}while(k>=0);
D、int s=36; while(s) --s;
1、试题答案:D
试题解析:
C语言中,字符串之间不能直接比较大小,需要使用字符串比较函数strcmp。函数的返回值:字符串1>字符串2,则返回正整数;字符串1=字符串2,则返回0;字符串1<字符串2,则返回负整数。
字符串a和b相等,则strcmp(a,b)的值为0,那么!strcmp(a,b)的值为1。故本题选D。
2、试题答案:A
试题解析:
当函数中局部变量被定义为静态局部变量时,该局部变量所占用的空间直到整个程序结束时才释放。故本题选A。
3、试题答案:B
试题解析:
函数调用属于程序执行,占用运行时间,故A选项错误。宏替换是在程序编译过程中进行的,不占用运行时间,故B选项正确。宏定义与函数有本质的区别,宏定义只是替换字符,不占用存储空间,而函数有存储空间,故C选项错误。在定义宏时,宏名与带参数的括弧之间不可以加空格,故D选项错误。综上本题选B。
4、试题答案:D
试题解析:
参与运算的变量的类型不同时,先转换成同一类型,然后进行运算。类型自动转换的基本原则是“按数据长度增加的方向进行转换”,以保证精度不降低。数据类型char、int、float、double的数据长度分别为1、4、4、8;故表达式a*b+d-c值的类型为double型,本题选D。
5、试题答案:D
试题解析:
选项A中,循环条件语句为1,恒为真;j的初值为50,变量j的变化语句为j=j%100+1;,则j的值一直加1,直到j值100时,j=j%100+1=0+1=1,故j的值的取值范围为1~100,故j>100恒为假,则恒不会执行break语句。故循环为死循环。
选项B中,循环条件语句为空,系统认为表达式恒为真,即循环无终止进行下去,为死循环。
选项C中,k的初值为0,循环变量增值语句为++k;,则k的值恒大于等于0,即循环条件语句恒为真。故循环为死循环。
选项D中,s的初值为36,循环变量增值语句为--s;,则循环执行36次时,s的值为0,此时循环条件语句为假,循环结束,故循环不是死循环。
综上本题选D。

