全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
有如下程序片段: typedef struct { int id; char name[20]; } Stu; Stu a = {1001, "Li"}, b; Stu *p = &a; 则下列说法正确的是 A. 执行 b = a; 后,可用 if (a == b) 判断两者各成员是否完全相同 B. 执行 b = a; 后,b.name 的值为 "Li",且修改 a.id 不影响 b.id C. 通过指针访问成员应写成 p.id D. 执行 p->id = 1002; 后,a.id 的值仍为 1001
登录后查看答案
有如下程序段: struct Book { int no; int price; }; struct Book b[4] = {{11, 30}, {22, 45}, {33, 50}, {44, 25}}; struct Book *p = b; 执行 p++; 后,表达式 p->no 的值是多少?若改用 (*p).price 的写法,其值又是多少? A. 11 和 45 B. 22 和 45 C. 22 和 50 D. 33 和 50
设有定义:typedef struct { int num; double gpa; } Rec; Rec r[4], *p = r; 下列表达式中,能正确访问 r[2] 的成员 gpa 的是( ) A. p+2->gpa B. *(p+2).gpa C. (p+2)->gpa D. p->gpa+2
有以下 C 程序: #include <stdio.h> int a = 5; int f(void) { static int s = 3; s += a; return s; } int main(void) { int a = 1; printf("%d,", f()); { int a = 10; printf("%d,", f()); } printf("%d", a + f()); return 0; } 程序运行后的输出结果是( ) A. 8,13,19 B. 8,13,20 C. 4,9,15 D. 8,14,19
有以下程序段: int i, j, n = 0, count = 0; for (i = 1; i <= 3; i++) { j = i; while (j <= 4) { if (j % 2 == 0) { j++; continue; } if (j == 3) break; n += j; count++; j++; } } printf("%d,%d", n, count); 程序执行后的输出结果是 A. 1,1 B. 4,2 C. 6,3 D. 0,0
对含有 6 个元素的一维整型数组 a[6] = {6, 5, 4, 3, 2, 1} 用标准冒泡排序按升序排列(共进行 n−1 轮,每轮内层从 j=0 比较到 n−2−i,相邻元素逆序即交换),整个排序过程中相邻元素发生交换的总次数是( ) A. 10 次 B. 12 次 C. 15 次 D. 20 次
有以下程序段: int i, j, k = 0; for (i = 1; i <= 4; i++) { for (j = 1; j <= 4; j++) { if (j % 3 == 0) continue; if (i * j > 6) break; k += j; } } printf("%d", k); 程序执行后输出的结果是( ) A. 7 B. 13 C. 14 D. 10
阅读以下程序段: int a=4, b=9, t=0; if (a = 5) if (b = 10) t = 1; else t = 2; else t = 3; printf("%d", t); 执行后输出的结果是(提示:注意 if 条件中的等号)。 A. 0 B. 1 C. 2 D. 3
设有程序段: int a; char ch; scanf("%d", &a); scanf("%c", &ch); 若运行时从键盘输入整数 36 后立即按回车键(只输入这一行),则变量 a 和 ch 的取值分别是( ) A. a=36,ch 为换行符 B. a=36,ch 为空格字符 C. a=36,ch 保持原值不变 D. a 值不确定,ch 为换行符
在某 C 编译系统中,char 占 1 个字节,int 占 4 个字节。若定义 int x = 2147483647; 后再执行 x = x + 1;,则 x 中存储的值是( )。 A. 2147483648 B. -2147483648 C. 0 D. 保持 2147483647 不变
某同学定义了 5 个变量:Int、_val、for、x_2、Case。逐一判断后,合法变量名的个数是( ) A. 3 B. 4 C. 5 D. 2
有如下程序段: struct Student { int id; int score; }; struct Student a[3] = {{1, 60}, {2, 70}, {3, 80}}; struct Student *p = a; printf("%d ", (p++)->score); printf("%d ", ++p->score); printf("%d", p->id); 则程序的输出结果是(提示:-> 的优先级高于 ++(后缀/前缀均如此)) A. 60 71 2 B. 60 70 3 C. 61 71 3 D. 60 71 3
某学生要对数据文件 data.txt 执行以下操作:先以 "w" 模式调用 fopen 打开该文件并写入字符串 "ABCD",随后调用 fclose 关闭;接着再次以 "a" 模式打开同一文件,写入 "1234" 后关闭。程序执行前 data.txt 中原有内容为 "XYZ"(均不含换行符)。问程序执行结束后,data.txt 中的完整内容是什么? A. XYZABCD1234 B. ABCD1234 C. ABCDXYZ1234 D. 1234ABCD
有如下C程序: int x = 1; int f(void) { static int s = 10; s += 2; return s; } int g(void) { return x; } int main(void) { int x = 5, r; printf("%d,", f()); r = f(); r += x; printf("%d,", r); printf("%d", g()); return 0; } 程序运行后的输出是 A. 12,19,1 B. 12,17,5 C. 12,21,1 D. 14,19,5
有如下程序段: int i,j,s=0; for(i=1;i<=3;i++){ j=0; while(1){ j++; if(j%2==0) continue; if(j>5) break; s+=i; } } printf("%d",s); 程序段执行后输出的结果是( )。 A. 6 B. 18 C. 15 D. 死循环,无输出
有以下程序段: int a=6, b=3; if (a > b) if (a = b) printf("%d", 10); else printf("%d", 20); else printf("%d", 30); 程序执行后输出结果是( ) A. 10 B. 20 C. 30 D. 无输出
有以下程序段: char ch='c'; switch(ch) { case 'a': printf("1"); case 'b': printf("2"); break; case 'c': printf("3"); case 'd': printf("4"); default: printf("5"); } 执行后输出结果是____。 A. 3 B. 345 C. 34 D. 12345
设有程序段:int a; char c1, c2; scanf("%d,%c %c", &a, &c1, &c2); 运行时从键盘输入一行(行末回车):48,t m 则执行后变量 c1、c2 的值分别是(字符用单引号括起表示)A. c1 为 't',c2 为 'm' B. c1 为 ' '(空格),c2 为 't' C. c1 为 't',c2 为 ' ' D. c1 为 ',',c2 为 't'
设有程序段:int a; char ch; 若执行 scanf("%d,%c", &a, &ch);,运行时从键盘输入 25,B 并按回车。随后再执行 scanf(" %c", &ch);,从键盘输入 x 并按回车。则第一次执行后 a 与 ch 的值,以及第二次执行后 ch 的值分别是( ) A. a=25,ch=B;第二次 ch=x B. a=25,ch=残留换行符;第二次 ch=x C. a=25,ch=B;第二次 ch=残留换行符 D. 格式串中的逗号导致 scanf 失败,a 与 ch 均未获得值
在某 C 编译系统中,int 与 unsigned int 均占 4 个字节(32 位)。若定义 unsigned int u = 4294967295;(即 unsigned int 能表示的最大值),则下列关于该环境中数据表示的说法正确的是: A. u 再加 1 后将发生浮点精度丢失 B. int 类型能表示的最大十进制正整数是 4294967295 C. unsigned int 的取值范围是 0 ~ 4294967295 D. float 与 unsigned int 同为 4 字节,故 float 也能精确表示 0 ~ 4294967295 内的所有整数