全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
判断:在C程序中,若某函数内定义了 static 局部变量并初始化,则该初始化在程序运行期间只执行一次,之后每次调用该函数时变量保留上次调用结束时的值;同时,若全局变量与某函数内的局部变量同名,在该函数内使用该名字时起作用的是局部变量。
登录后查看答案
设有一个二维数组 int a[4][5];,某同学断言:“将二维数组 a 作为函数形参时,可写成 int b[][],因为初始化二维数组时行数可以省略,所以形参定义中两维都可省略。”请判断这一说法的正误。
判断:用 while 循环编写求 1×2×…×10 的累乘程序时,若将存放乘积的变量 s 的初值误设为 0,其余逻辑(循环条件、乘法语句)均正确,则程序最终仍能输出正确结果 3628800。
判断:以下说法是否正确。若有语句 do { x++; } while (x < 0); 且 x 的初始值为 5,则循环体一次也不执行。
判断:执行 scanf("%d", &a); 后,若再执行 scanf("%c", &ch);,由于 %c 不会跳过空白字符,ch 将读到上次输入后残留在缓冲区中的换行符,因此该写法通常无法读到用户随后键入的第一个非空白字符。
判断:设有定义 int i = 5; 表达式 (double)(i++) / 2 的求值结果为 2.5,且该表达式求值结束后 i 的值为 6。
判断:某学生编写的 C 程序中,printf("End"); 语句末尾写有分号,且语句前另有一行注释 // 输出结束标志,该注释以回车结束而非分号或 */ 符号;因此编译器在预处理阶段会直接删除这行注释,程序能否通过编译取决于 main 函数与各语句分号是否齐全,而与注释内容完全无关。
判断:以下说法是否正确——一个 C 程序可以没有预处理指令,但必须有且仅有一个 main 函数,且每条语句末尾的分号可以省略,因为编译器会自动补上。
设有程序段:int n; char op, tag; scanf("%d", &n); scanf(" %c", &op); scanf("%c", &tag); 运行时从键盘输入(每行末尾均按回车):5↙+↙A↙。判断下述说法是否正确:由于第二个 scanf 的格式串 "%c" 中 %c 前有一个空格,它会跳过输入缓冲区中的空白字符(包括上一次残留的回车换行符),因此 op 读到字符 '+';而第三个 scanf("%c", &tag) 的格式串中 %c 前没有空格,它不会跳过任何字符,于是 tag 读到 '+' 之后的回车换行符,字符 'A' 不会被任何变量读入。
判断:设 float x = 3.14159f;,语句 printf("%5.2f", x); 的输出结果为 3.14159,因为 %f 对 float 输出时总是保留全部 6 位小数,宽度与精度控制仅对整型输出有效。
判断:若有 float f = 3.14159f;,则执行 printf("%f", f); 后输出 3.141590,因为 %f 格式默认输出 6 位小数。
判断:在 32 位系统中,int 类型的取值范围为 -2147483648 ~ 2147483647,因此把 2147483648 赋给一个 int 变量时会发生溢出,无法得到正确的存储结果。
判断:在 C 程序中,注释内容会被编译器翻译成机器码,因此注释写得越多,生成的可执行文件越大。