`
YongjianChang
  • 浏览: 11343 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

二级C试题(4)

    博客分类:
  • C
阅读更多


有以下定义: #include <stdio.h> char a[10],*b=a; 不能给数组a输入字符串的语句是( )。
A.gets(a)
B.gets(a10])
C.gets(&a[0});
D.gets(b);
正确答案:B
解 析:函数gets()的调用形式为gets(str_adr);str_adr存放字符串的起始地址。可以是字符数组名、字符指针或字符数组元素的地址。 gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。本题中定义一个长度为10的字符数组,和一个指针变量b,并且通过赋值让 它指向数组a。选项A、选项B、选项C和选项D中只有选项B中gets函数的参数a[0]不能表示数组a的首地址,故选项B不正确。所以,4个选项中选项 B符合题意。


C语言允许函数值类型缺省定义,此时该函数值隐含的类型是
int


以下不是无限循环语句的是
a for(y=0,x=1;x>=++y;x++)
b for(;;x++)
c while(1){x++}
d for(i=10;;i--) sum+=i
B和D都是无结束条件的for循环 因此无限循环

C中while(1)条件始终为真 也是无限循环

对于A for在执行时进行条件判断 此时 x为1  等于++y循环结束

main (){int a=0,b=o;a=10;b=20;printf("a+b=%d\n",a+b);}为啥输出“a+b=10"
这个程序不可能输出“a+b=10",如果是int a=0,b=0;a=10;b=20; 那么输出就应该就a+b=30,要是你把b=20给注释了,那么就会出现a+b=10

设m是一个三位数,从左到右用a、b、c表示各位的数字。则从左到右各位数字为b、a、c的三位数(用m表示)是
从左到右各位数字为b、a、c的三位数(用m表示)是
m=100b+10a+c

 

 

设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是_______。 A) 把x和y按从小到大排序
把x和y的值换过来
x+=y把x+y的和放到x里
y=x-y把原来x的值放到y里
x-=y(x=x-y)把原来y的值放到x里


设x和y均为int 型变量,则以下语句:x+=y;y=x-y;y=x-y;x-=y;的功能是
A、把x 和y按从大到小排列
B、把x和y按从小到大排列
C、无确定结果
D、交换x和y中的值
x+=y执行后 (x)=x+y  (y)=y
y=x-y操作后 (x)=x+y  (y)=x
y=x-y操作后 (x)=x+y (y)=y
x-=y操作后 (x)=x (y)=y


#include "stdio.h" main() {int a,k=4,m=4,*p1=&k,*p2=&m; a=p1==&m; printf("%d\n",a); } 为什么a=0,求
a=p1==&m;等价于a=(p1==&m);//先判断p1与&m是否相等,将判断结果赋给a。因为p1指向k,即p1的值为k的地址,因与m的地址不相同,因此p1==&m的结果为假,在C中,假用0表示。



(C语言)设w、x、y、z、m均为int型变量,有一下程序段: w=1;x=2;y=3;z=4; m=(w<x) ? w:x;m=(m<y) ? m:y;m=(m<z) ? m:z;
则该程序运行后,m的值是?(为什么?)


x=(a<b)?m:n是意思是判断a<b是真的话x=m就是钱一个数,假(就是a>b)那么x=n(后一个数)。
m=(w<x)?w:x------->m=w=1;

m=(m<y) ? m:y---->m=m=1;

m=(m<z) ? m:z---->m=m=1;

所以m=1



int *p=a和int *p=&a有什么区别?
int a[10];
int *p=a;                //与前面定义的数组名a类型相同,才可以这样赋值。
int a;
int *p=&a;            //前面定义的a是普通变量,才可以这样赋值。


main() { int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf("%d,%d,%d,%d\n",m,n,*p,*q); 求结果
结果:1,2,2,1
分析:前两个数字1,2,是定义的m和n对应的输出。后边两个两个数字2,1,实际上是通过指针对数字进行了对换。


当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(   )
A、c=b=a;  B、(a=c)||(b=c); C、(a=c)&&(b=c); D、a=c=b;
选C
A和D都是错误的表达式,
B只能把C的值赋给变量a,因为c不为零 所以(a=c)的值也不零,那么不管“||”后面的值是否为零,(a=c)||(b=c)的值始终为1,所以计算机不会再浪费时间去处理“||”后面的表达式,因为计算机已经得到(a=c)||(b=c)的值了。同理,如果(a=c)的值为零,计算机也不会再去处理“&&”后面的表达式。


1.能正确表示a和b同时为正或同时为负的逻辑表达式是? A: (a>=0&&b>=0)&&(a<0&&b<0) B: a*b>0 为什么选B


因为A为空集,(a>=0&&b>=0)与(a<0&&b<0)如果是或关系 即:(a>=0&&b>=0)||(a<0&&b<0)
那么A就对了
如果是与关系,则A为空集


设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A.STD tt[2]={{1,’A’,62},{2,’B’,75}}; B.STD tt[2]={1,"A",62,2,"B",75};C.struct tt[2]={{1,’A’},{2,’B’}}; D.struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
正确答案:C
本题主要考查关键字typedef的作用和结构体的初始化。C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说,允许由用户为已存在的数据类型名定义一个“别名”。类型定义符typedef即可用来完成此功能。说明新类型名的语句一般形式为:
         typedef   类型名   标识符;
这里的“类型名”必须是在此语句之前已有定义的类型标识符,可以是任何基本类型、结构或联合类型符号。
在本题中,通过题目中程序的定义可以知道,STD为该结构体的类型,而不是结构体变量,因此,STD tt[2]的声明是正确的。
由于结构体的第三个成员变量为双精度型,而在选项A中,输入与其对应的值是整型,数据类型不匹配,因此不正确。
由于结构体的第二个成员变量为字符型,而在选项B和选项D中,用双引号引起,表示字符串,而不是单个字符,因此不正确。
在选项C中,虽然缺少一个元素,但系统提供了一个默认的值0。因此,这个赋值语句是正确的。


3.    设有以下说明语句
struct stu
{ int a;
float b;
} stutype;
则下面的叙述不正确的是
A)struct是结构体类型的关键字
B)struct stu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名
D)a和b都是结构体成员名
struct stu
{ int a;
float b;
} stutype;
相当于
struct stu
{ int a;
float b;
};
stu stutype;

stutype是声明为stu类型的一个变量,结构类型名为stu



下面条件语句中,功能与其他语句不同的是()
A)if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if(a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);

正确答案是选择D。why?
前三个都是 如果a=0就输出 y 否则输出  x

只有最后一个是 如果a=0 输出 x 否则输出 y


struct date{int year;int month;int day;}t[20];求sizeof(t)的值。详述步骤
sizeof(t)返回的是整个数组的大小,因为每个结构体有3个整数,每个整数是4个bytes,所以sizeof(t)返回的值是 20 x 4 x 3 = 240;同时有的体系int可能是2bytes,所以返回值也可能时120.

分享到:
评论

相关推荐

    历年计算机二级C语言试题

    计算机二级C语言试题是针对全国计算机等级考试中的二级C语言科目的一个重要学习资源。这个压缩包文件包含了历年的考试题目,对于备考者来说是极为宝贵的复习材料。C语言是一种广泛应用的编程语言,它以其高效、灵活...

    2023年全国计算机二级C语言试题与答案-20221212191736.pdf

    "2023年全国计算机二级C语言试题与答案" 本资源是2023年全国计算机二级C语言试题与答案的PDF文件,涵盖了C语言的基本概念、语法、函数、变量、数据类型、运算符、控制结构、数组、指针、结构体、文件操作等方面的...

    国考二级c语言上机试题

    【标题】"国考二级C语言上机试题"所涉及的知识点主要集中在C语言编程的基础概念、语法结构、数据类型、运算符、控制结构、数组、指针、函数、输入/输出等方面。这些是全国计算机等级考试二级C语言部分的核心内容,...

    全国计算机等级考试二级C语言历年试题及答案合集

    全国计算机等级考试二级C语言历年试题及答案合集是一份极具价值的学习资源,专为准备参加计算机等级考试的考生提供。这份合集包含了C语言历年来的考试题目与对应的解答,对于备考者来说,是深入理解和掌握C语言知识...

    二级C语言公共试题

    【标题】"二级C语言公共试题"涉及到的是中国计算机等级考试中的二级C语言部分,这是一个针对初学者和有一定基础的学习者设计的考试,旨在检验考生对C语言编程的基础理论知识和实际编程能力。C语言是一种广泛应用的...

    c语言二级上级试题库

    这个"二级C.exe"文件可能是模拟考试环境的执行程序,通过它,考生可以进行实战练习,检验对以上知识点的掌握程度。利用这样的资源,考生可以反复练习,提高编程能力和应试水平。同时,"考点精讲"部分可能包含了对...

    等考二级C语言历年试题

    等考二级C语言历年试题

    C语言试题,二级C语言试题.doc

    C语言试题,二级C语言试题.doc

    2012年3月计算机二级C语言试题和答案

    【2012年3月计算机二级C语言试题与答案详解】 C语言,作为一门基础且广泛应用的编程语言,是全国计算机等级考试二级的重要考察对象。2012年3月的计算机二级C语言试题,旨在检验考生对于C语言的基本语法、数据类型、...

    二级c语言试题

    根据提供的信息,我们可以总结出以下关于“二级C语言试题”的知识点: ### 一、二级C语言考试概述 二级C语言考试是中国计算机等级考试的一部分,主要针对具备一定编程基础的考生,旨在测试他们对C语言的基本语法、...

    2008年计算机等级考试二级C语言试题及答案

    2008年计算机等级考试二级C语言试题及答案是针对全国计算机等级考试二级C语言科目的备考资料,旨在帮助考生在考试前进行有效的复习和模拟训练。这份资料包含了多套模拟试题和相应的答案,对于考生来说,是提升编程...

    计算机二级C语言试题及答案.docx

    "计算机二级C语言试题及答案" 本资源是关于计算机二级C语言考试题的总结,涵盖了C语言的基本概念、语法结构、数据类型、运算符、控制结构、函数、数组、指针等方面的知识点。下面是对该资源中包含的知识点的详细...

    二级C语言试题及答案

    很好 棒极了,里面有上百道二级试题及参考答案还有详解,觉得不错,大家分享一下

    全国计算机二级C语言等级考试

    全国计算机二级C语言等级考试是针对计算机编程初学者和专业人士的一项资格认证,旨在评估考生对C语言编程基础知识、程序设计方法以及问题解决能力的理解。这个考试通常包括理论知识和实践编程两部分,全面覆盖了...

    历年全国计算机二级C语言试题库完整-.pdf

    历年全国计算机二级C语言试题库完整-.pdf

    c语言\二级c试题—2011

    【标题】:“C语言\二级C试题—2011” C语言,作为一种基础的编程语言,被广泛应用于计算机科学教育和实际开发中。中国的计算机等级考试,特别是二级C语言考试,是衡量考生对C语言掌握程度的标准之一。2011年的二级...

    上海市计算机二级考试C语言试题.pdf

    "上海市计算机二级考试C语言试题.pdf" 本文档包含四个C语言试题,涵盖了不同领域的知识点,包括字符串处理、循环语句、判断语句、数组操作等。 一、程序设计题1:输出n行由大写字母A开始构成的三角形字符阵列图形 ...

    计算机等级考试二级C语言试题4单项选择题.doc

    ### 4. 字符常量的合法形式 - **选项分析**: - **A) ’\084’**:八进制转义序列应该在八进制数范围内(0-7),此选项超出了范围。 - **B) ’\X43’**:十六进制转义序列应该是`\x`加上十六进制数的形式,且大小写...

Global site tag (gtag.js) - Google Analytics