开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第N天,点击查看活动详情 选择题 💦第一题 以下for循环的执行次数是()
for(int x = 0, y = 0; (y = 123) && (x < 4); x++); 1 A. 无限循环 B. 循环次数不定 C. 4次 D. 3次
for循环的组成 for(初始化部分 ;条件判断 ; 调整部分){ //循环语句部分 }
根据条件判断,当x为0 1 2 3 的时候会进行循环,所以这道题的正确答案是4次,选C
💦第二题 以下程序的运行结果是()
#include <stdio.h> int main(void) { printf("%s , %5.3s\n", "computer", "computer"); return 0; } 1 2 3 4 5 A. computer , puter B. computer , com C. computer , computer D. computer , compu.ter
这道题是打印字符串,%s打印字符串遇到\0就会停止,第一个%s会把computer全部打印出来,而%5.3是什么意思呢?
这里来讲解一下:
%m.ns: m:输出字符串的宽度 n:左起截取目标字符串n个字符,并且是右对齐,补空格
当字符串长度 > n > m :此时m就失效了,只受n控制。 当n > 字符串长度 时:此时和%s作用一样
所以这道题的答案是computer , com ,所以选B
💦第三题 下列main()函数执行后的结果为()
int func(){ int i, j, k = 0; for(i = 0, j = -1;j = 0;i++, j++) { k++; } return k; } int main(){ cout << (func()); return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 A. -1 B. 0 C. 1 D. 2
这道题是用main函数调用func函数,然后返回一个k值,k在for循环中会变化,这道题的本质就是看for循环循环了多少次!
初始化部分j初始化为-1,条件判断部分是j赋值为0,所以这个条件判断是恒为假的,所以不会进入到for循环中,所以k的值为0。
这道题的答案是 0 ,选B
💦第四题 下面程序输出是什么()?
#include <stdio.h> int main() { int a=1,b=2,c=3,d=0; if(a == 1 && b++==2) if(b!=2||c--!=3) printf("%d,%d,%d\n" ,a,b,c); else printf("%d,%d,%d\n" ,a,b,c); else printf("%d,%d,%d\n" ,a,b,c); return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 13 A. 1,2,3 B. 1,3,2 C. 3,2,1 D. 1,3,3
这道题目就和有些人刚开始写代码的时候,喜欢吧if语句的括号省略掉,这就导致代码的可读性变差,这时候就需要我们来仔细寻找if和else
#include <stdio.h> int main() { int a=1,b=2,c=3,d=0; if(a == 1 && b++==2) { if(b!=2||c--!=3) { printf("%d,%d,%d\n" ,a,b,c); } else { printf("%d,%d,%d\n" ,a,b,c); } } else { printf("%d,%d,%d\n" ,a,b,c); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 经过调整之后代码的可读性变高了,然后就可以做题了
看第一个if,当两个都为真的时候才会进下面,a初始化是等于1的,为真,b++是先用b比较再进行++,所以也是为真的,所以就会进入到第二个if语句,然后我们再进行判断
第二个if的语句是用逻辑或连接起来的,所以某一边为真即为真,前面已经b++了,所以b现在为3,所以b!=2,所以为真,逻辑或 当第一个表达式为真是不会执行第二个表达式的所以会直接打印abc的值
所以这道题只有b在初始化以后有改变,所以这道题的答案为1 3 3 ,所以选D
💦第五题 若有定义语句: int a=10 ; double b=3.14 ; 则表达式 ‘A’+a+b 值的类型是()
A. char B. int C. double D. float
这道题不同类型的表达式进行计算的时候会有类型的提升,表示范围小会自动提升到范围大的类型,char占一个字节,int占四个字节,double占八个字节,所以char类型和int类型会自动提升到double类型。
所以这道题选C
💦第六题 在int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};中,p[1][2]的值是()
A. 1 B. 0 C. 6 D. 2