前言
🍀作者简介:吉师散养学生,为挣钱努力拼搏的一名小学生。
🫒文章目的:我不想学C啊啊啊啊啊
1. (单选题)
分析以下程序的运行结果。
#include <stdio.h> void main() { int k=2; switch(k) { case 1:printf("%d\n",k++); break; case 2:printf("%d ",k++); case 3:printf("%d\n",k++); break; case 4:printf("%d\n",k++); default:printf("Full!\n"); } }
A. 3 4
B. 3 3
C. 2 3
D. 2 2
解题过程
首先分析该程序,简单的分支语句,最初K=2,跳转到选择2,执行K++,
因为是K++,不是++K,所以第一次输出为2,因为选择2后面没有break语句,所以顺序执行下一条也就是选择3.同理,第二次就为3
2. (单选题)
以下程序的输出结果是( )。
#include<stdio.h> void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; } printf("a=%d,b=%d",a,b); }
A. a=1,b=1
B. a=1,b=2
C. a=2,b=1
D. a=2,b=2
首先分析第一个switch,对x进行选择,此时x=1,y=0,a=0,b=0
所以进入选择1再次进行选择,因为y=0,执行a++后退出内嵌选择
此时x=1,y=0,a=1,b=0
但因为外部的选择1并未加入break语句,所以,继续执行外部的选择2
a++,b++
此时x=1,y=0,a=2,b=1
输出
3. (单选题)
以为了避免嵌套的条件分支语句if-else二义性,C语言规定,C程序中的else总是与( )组成配对关系。
A. 缩排位置相同的if
B. 在其之前未配对的最近的if
C. 在其之前未配对的if
D. 同一行上的if
选B,这玩意得记住,贼特么坑
4. (单选题)
以下程序的输出结果是( )
#include<stdio.h> int main() { int a=010,b=0x10,c=10; printf("%d,%d,%d",a,b,c); return(0); }
A. 10,10,10
B. 8,16,10
C. 16,8,10
D. 8,10,10
这玩意我的评价是看选项排除一哈,推导出a是8进制,b直接16进制,c十进制
位权一乘