c语言题库中的一道题有点疑问

作者&投稿:边清 (若有异议请与网页底部的电邮联系)
C语言初学,下面两道题我有点疑问~

选择题考查的知识点
1、b++和++b的区别: ++在后面,是先参与计算,再加1;而++在前面时是先加1再参与计算。
刚开始b=2,当执行第一个if中的判断b++ == 2时,执行顺序是先判断b是否等于2,再执行b增加1。所以第一个if的两个条件都为真,并且执行后b=3。
2、多条件的执行顺序。第二个if要求b!=2或者c--!=3,也就是其中一个条件为真即可。代码执行时是从左到右的顺序判断,如果第一个条件为真,那就不用执行后面的判断。因为第一条if执行完后b=3,那么b!=2就为真,后面的c--!=3也就不用执行了。所以最后c是等于3的。
同理如果有if(表达式1&&表达式2),那么当表达式1的条件为假时,表达式2也不会执行了。
填空题考查的知识点是变量在使用前应初始化。sum在使用前没有赋初值,那在调用它时它的值是不确定的。

D正确,选D——其实输入12 34和1234都行。因为%c只接收一个字符,而且空格、回车、其他能在键盘上敲出来的都是字符,所以输入1也是字符,就被a接收了,下一个2就被b接收了;但若在1和2之间敲一个空格或其他符号,那么这个空格或其他符号就被b接收了,达不到将2输入给b的目的。12和34之间可有可无空格,因为%d是要跳过空格找数字来接收的——这就是%c控制和%d控制输入时的区别之一。

选A是错误的。运行结果是正确的。

要明白这个问题,先要明白函数调用传值和传地址的不同。传值是将实参将自身赋值一份传递给形式参数,实参和形参是在两个不同的存储单元,所以形式参数的改变不会改变实参的值传地址,是实参将自身存储的位置给形式参数,本质上它们访问的是同一个存储单元,所以形式参数的改变会影响实参的值。

本题传递的是结构体,结构体名代表的是地址,所以该函数传递的是地址。所以f函数中对t的值得赋予改变了主函数中a的值。最后输出的结果就是运行结果了。



C语言结构体支持整体赋值,a=f(a);这条语句的意思就是将f(a)的返回值赋值给a,与以上运行结果一致,A是错误的。


C语言二级题库中的题请教大家~
int fun(int a[],int n)\/* 从main函数中接收传递的2个参数 *\/ {int i,j=1,k=a[0];\/* 将数组的首地址赋给k *\/ for(i=1;i<n;i++)if(k!=a[i])\/* 判断k是否与数组中a的元素相等,逐个判断 *\/ {a[j++]=a[i];\/* 如果不相等就把a[i] 赋给a[j++](有些难理解,但...

c语言题库的题 求解答
5>3 =1,1&&2=1,1||任何表达式=1

急求C语言复习题库加答案
14.C语言中的文件类型只有( D )。 A 索引文件和文本文件两种 B 文本文件一种C 二进制文件一种 D ASCII码文件和二进制文件两种二 判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)1.在Turbo C中,整型数据在内存中占2个字节。(× )2.int i=20;switch(i\/10){case 2:printf("A");case 1...

...的考试题目都是从《C语言题库》里面抽取的题目吗?
全国计算机等级考试二级C语言的考试题目的小题不是从《C语言题库》中抽取的,后面的大题即编程题全部是从最近的一年的《C语言题库》中抽取的。考题大部分是C语言,少部分是算法与数据结构里面的东西。就算不是《C语言题库》题库里的题,但是题型都差不多的。c语言是一门面向过程、抽象化的通用程序...

计算机二级c语言题库及答案
计算接二级c语言题库我建议大家去百度搜索:原创力文档 原创力文档大概收纳了100套计算机二级c语言试题,这100套题基本上涵盖了计算机二级c语言所有的题目和知识点。一共480多页pdf,这么多试题我们应该如何使用呢?1,首先我们做题要有针对性地做,做的时候多加思考,为什么要操作这一步?为什么要输入...

计算机二级c语言笔试有题库里的原题吗
原题占极少的一部分,建议你有时间还是多做做其他的题,不要把注都压在题库里。先把题库的题做完,再做做计算机二级c语言的练习题。

大一C语言期末考试求题库
二、填空题(共7题,共10空,每空1分,共10分。将答案填在题中横线上)1、C语言提供的三种逻辑运算符是 && 、 || 和!;2、函数的返回值是通过函数中的 return 语句获得的。3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定义后,a[2][2]的值为_6__ ...

C语言如何实现从指定题库里抽取题目,实现随机出题?
比如现在有100道题,要抽10道题。先建立一个试题索引数组,idxarr = {0,1,2,...,99} 然后用随机数生成函数rand(),生成一个0到99的随机数,把索引数组里面该索引的值与数组中最后一个值调换,比如生成随机数为2,则修改索引数组为idxarr={0,1,99,3,4,...,98,2} 然后再生成一个0到98...

大学语文文学常识题
10、《左传》是中国第一部叙事历史著作,在历史、文学和语言方面,都有很高的成就。 11、《论语》是...根据考试经验,历次考试的试题,大都出自试题库或者与其有很大的关系.因此,考生了解试题库的题型,可以大...对刻画李广形象来说,这种表现方法是A、铺垫反托B、对比反托C、侧面烘托D、象征暗示(答案:C)这道题...

2011年3月2级c语言试题题库
一、选择题1、x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是( B ).A.INPUT x、y、z; B.scanf("%d%d%d",&x,&y,&z);C.scanf("%d%d%d",x,y,z); D.read("%d%d%d",&x,&y,&z);2、当用户要求输入的字符串中含有空格时,应使用的输入函数是( C ).A.scanf( ) B...

北市区18337059041: c语言题库中的一道题有点疑问 -
崇翰盐酸: C语言结构体支持整体赋值,a=f(a);这条语句的意思就是将f(a)的返回值赋值给a,与以上运行结果一致,A是错误的.

北市区18337059041: C语言的一道题..疑问 -
崇翰盐酸: 这段话中举的例子是将文章加密.所以他只针对了大小写的a-z字母的转换.他的目的是将每字母ascII码加4如果加4以后超出了z的话就从a再加剩下的.但是大小写不变. 因为小写的字母的编码比大写的字母编码数大.所以即使出现了大于z编码的情况也不用担心.只要-26再接着加就行了. 但是大写字母不行.例如如果拥护输入了小写的a.等到判断if(c>'Z'&&c'z') 这步的时候.如果没有c'Z'的情况.所以加密后就变成特殊符号了.这不是我们本想要的结果

北市区18337059041: 一道C语言的题目 很疑惑 -
崇翰盐酸: ABCDEFG分别为b[0],b[1],b[2]....b[6],最后又一个'\0'为b[7]; 指针chp定义时赋予初值&b[7];即是'\0'的首地址; --chp;先--再使用该地址;则第一个putchar就是a[6]=G; 然后往后--,......输出FEDCB; 此时chp=&b[1];即B得首地址 下一步--,chp=&b[0]不符合循环条件了.跳出.再输出一个'\n' 所以程序答案是:GEFDCB存在啊;一个结束符啊:'\0' 而且本题没有读取b[7]的内容,只是单纯的使用它的地址;即使越界,在C语言里也是允许的

北市区18337059041: c语言试题 有点疑问 大家解释一下 -
崇翰盐酸: 这个程序是错误的.因为:(a+a-=a*a)中-=的优先级最低,所以应该等价于:((a+a)-=(a*a)) 而赋值符号左边必须是一个变量,但现在是a+a所以错误.应该改成:printf("%d\n",a+(a-=a*a));改成这样后输出结果为:-12

北市区18337059041: C语言中一道题,不明白什么意思 -
崇翰盐酸: 分段函数求值.main () { float x,y; printf ("x="); scanf ("%f",&x); y = (x >= 0) ? (x * x) : (x < -1) ? (x + 1) : (2 * x - 1); printf ("y=%g\n",y); getch (); }

北市区18337059041: C语言的一道题,很迷惑 -
崇翰盐酸: 在第一个代码中,函数fun()为了计算串长度,多次执行str++,致使str最后指向了'\0',而不是串的第一个字符,而在比较字符串首尾字符时,你仍认为str指向的是第一个字符,这就是产

北市区18337059041: 关于c语言的一道题的疑问 -
崇翰盐酸: 我给解释下,首先你的str[10]只是申请没有初始化,所以系统会自动为你分配一些意想不到的值,当你执行for(;i<5;i++)str[i]=c++;这句时,系统将str的前五个变为a,b,c,d,e,但是其余五个还是意想不到的值,所以输出时会有其他的值.如果你在开始的建立str时初始化,将其变为char str[10]={'a','b'}那么,系统就会自动为其加上'\0'不知道这种解释你觉得是否满意

北市区18337059041: c语言中一道疑惑的选择题 -
崇翰盐酸: 这是逻辑位运算符的问题先将x y z都转换为二进制的数x 0000 0011y 0000 0010z 0000 0001~Z 1111 1110y&~Z 0000 0010x|y&~Z 0000 0011转换为十进制 等于3运算符的优先级~ >&>|懂了给面红旗!谢谢

北市区18337059041: C语言的几道试题,有疑问,求解答
崇翰盐酸: 3. main() { int a[11],i,j,t; printf("input 10 numbers:\n"); for(i=1;i&lt;=10;i++) scanf("%d",&amp;a[i]); printf("\n"); for(j=1;j&lt;=9;j++) for(i=9;i&gt;=j;i--) if (a[i]&gt;a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf("the sorted numbers:\n"); for(i=1;i&lt;11;i++...

北市区18337059041: c语言试题 有点疑惑 大家帮忙 -
崇翰盐酸: 加减乘除不用多说也知道是先乘,但是m*=i+j只可以看做是m=m*(i+j);请注意,不能看作是m=m*i+j,为什么呢,因为等式是分左右两边的也可以把*=当成一个运算符,只是这样看不好,更容易弄错,反而转化不了式子

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网