科|C程序设计班 日期中考试|级 东北大学试卷 总分 分数 从下列四个供选择的答案中选出一个正确答案(每题2分共40分) 1.以下说法不正确的是() A.C程序中必须有一个man(函数,C程序是从 maino函数的第1条语句开始执行的 B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的 C.C程序中的man(函数必须放在程序的开始位置 D.C程序中的manO函数位置可以任意指定 2.以下说法不正确的是() A.C程序中的一行可以写多条语句 B.C程序中的语句可以采用缩进格式书写 C.C程序中的每行只能写一条语句 D.C程序中可以用注释提高程序的可读性 3.属于合法的C语言长整型常量是() A.5864545B.OLC.2E10 D.(long)1235456 4.在以下一组运算符中,优先级最高的运算符是() B D.&& 5.C语言运算对象必须时整型的运算符是 B/ C D.<= 6.下列选项中,合法的C语言关键字是() A. VAR B. cher C D. default 7.假定有以下变量定义: int k=7, x12 则能使值为3的表达式是() A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5 8.以下选项中属于C语言的数据类型是() A.复数型B.逻辑型C.双精度型D.集合型 9.设x、y,z和k都是int型变量,则执行表达式X=(y=4,z=16,k=32) 后,x的值为()
1 科 目 C 程序设计 期中考试 班 级 姓 名 学 号 时 间 东北大学试卷 密 封 线 共 6 页 第 1 页 题号 总分 分数 一、从下列四个供选择的答案中选出一个正确答案(每题 2 分,共 40 分) 1.以下说法不正确的是 ( ) A.C 程序中必须有一个 main()函数,C 程序是从 main()函数的第 1 条语句开始执行的 B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的 C.C 程序中的 main()函数必须放在程序的开始位置 D.C 程序中的 main()函数位置可以任意指定 2.以下说法不正确的是 ( ) A.C 程序中的一行可以写多条语句 B.C 程序中的语句可以采用缩进格式书写 C.C 程序中的每行只能写一条语句 D.C 程序中可以用注释提高程序的可读性 3.属于合法的 C 语言长整型常量是 ( ) A.5864545 B.0L C.2E10 D.(long)1235456 4.在以下一组运算符中,优先级最高的运算符是 ( ) A.<= B.= C.% D.&& 5.C 语言运算对象必须时整型的运算符是 ( ) A.%= B./ C.= D.<= 6.下列选项中,合法的 C 语言关键字是 ( ) A.VAR B.cher C.integer D.default 7.假定有以下变量定义: int k=7,x=12; 则能使值为 3 的表达式是 ( ) A. x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5) 8.以下选项中属于 C 语言的数据类型是 ( ) A.复数型 B.逻辑型 C.双精度型 D.集合型 9.设 x、y,z 和 k 都是 int 型变量,则执行表达式 X=(y=4,z=16,k=32) 后,x 的值为 ( )
北大学试卷 B.16C.32 D.52 10.以下程序的输出结果是() fint a=3 printf("%\n”/(a+=a=aa) 11表示关系x<=y<=z的C语言表达式为() A.(X<=Y)&&(Y<=Z) B. (X<=YAND(Y<=Z) C Z D.(X<=Y)&(Y<=Z 12.若有以下定义和语句: char cl=b’c2='e rinf("%d, %cInc2-cl, c2a+'A') 则输出结果是 A.2,M B.3,E C.2,E D.输出结果不确定 13.假设定义:intx=3,y=3;则复合赋值表达式x/=1+y的值为() A.0 B.0.75 C.6 D.以上都错 14表达式:35&&-1|6<3-!-1的值是 A.0B.1C.表达式不合法 D.均不对 15.语句if(3/4>1/2)a=1; else a=0;运行后,a的值是() A.1 B.0 C.与机器有关D.语法有错 16.已知字符b’的AsC码为98,语句 printf("%d,%,"b,b'+1);的输出为() A.98,bB.语句不合法 17.对于inta,则表达式1<=a<=5值是 B.1 C.不定D.表达式语法有错 18.设C语言中,一个int型数据在内存中占2个字节,则 unsigned int 型数据的取值范围为() A.0~255B.0~32767C.0~65535D.0~2147483647 19.表示图中坐标轴上阴影部分的正确表达式是() /// // /// /// A.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)|(b<=x<=c) C.(x<=a)‖|(x>=b)&&(x<=c)
2 东北大学试卷 密 封 线 共 6 页 第 2 页 A.4 B.16 C.32 D .52 10.以下程序的输出结果是 ( ) main() {int a=3; printf(“%d\n”,(a+=a-=a*a)); } A.-6 B.12 C.0 D.-12 11.表示关系 x<=y<=z 的 C 语言表达式为 ( ) A.(X<=Y)&&(Y<=Z) B.(X<=Y)AND(Y<=Z) C.(X<=Y<=Z) D.(X<=Y)&(Y<=Z) 12.若有以下定义和语句: char c1=’b’,c2=’e’; printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’); 则输出结果是 ( ) A.2,M B.3,E C.2,E D.输出结果不确定 13.假设定义:int x = 3, y = 3; 则复合赋值表达式 x /= 1+y 的值为 ( ) A. 0 B. 0.75 C. 6 D. 以上都错 14.表达式: 3>5 && -1 || 6 < 3 - !-1 的值是: ( ) A. 0 B. 1 C.表达式不合法 D. 均不对 15.语句 if (3/4 > 1/2) a=1; else a=0; 运行后, a 的值是 ( ) A. 1 B. 0 C. 与机器有关 D. 语法有错 16.已知字符 ‘b’ 的 ASCII 码为 98 ,语句 printf ("%d,%c", ’b’,’b’+1 ) ;的输出为 ( ) A.98,b B.语句不合法 C.98,99 D.98,c 17.对于 int a,则表达式 1<=a<=5 值是 ( ) A.0 B. 1 C. 不定 D.表达式语法有错 18.设 C 语言中,一个 int 型数据在内存中占 2 个字节,则 unsigned int 型数据的取值范围为 ( ) A.0~255 B.0~32767 C. 0~65535 D. 0~2147483647 19.表示图中坐标轴上阴影部分的正确表达式是 ( ) //// //// //// //// X a b c A.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)||(b<=x<=c) C.(x<=a)||(x>=b)&&(x<=c)
D.(x<=a)&&(b<=x<=c) 20.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 须为字母 必须为下划线 C.必须为字母或下划线D.可以是字母、数字和下划线中任一种字符 二、填空题(每空2分,共30分) 1.判断一个字符是否是字母或数字的逻辑判断语句是 用下列for循环将大写字母逆序输出(即从Z到A),其语句应为 for(i=0;i<26;i+) 3.语句 printf(%%d%d”,123),将输出_ 4.在C语言中,表示逻辑“真”值用 5.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值是 6.以下程序实现输出x,y,z三个数中的最大者,请在【】内填入正确内容。 #include <stdio. h> main intx=4,y=6,z=7; int【1】 if(【2】)u=x f(【3】)v=u printf(“v=%d”,v) 7.下面程序的功能是用公式 ≈-+一 求π的近似值,直到最后一项的
3 D.(x<=a)&&(b<=x<=c) 20.C 语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 ( ) A.须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母、数字和下划线中任一种字符 二、填空题(每空 2 分, 共 30 分) 1.判断一个字符是否是字母或数字的逻辑判断语句是 2.用下列 for 循环将大写字母逆序输出(即从 Z 到 A), 其语句应为: for (i=0; i<26; i++) ; 3.语句 printf(“%%d%d”, 123); 将输出 4.在 C 语言中,表示逻辑“真”值用 5.设 x 和 y 均为 int 型变量,且 x=1,y=2,则表达式 1.0+x/y 的值是 6. 以下程序实现输出 x,y,z 三个数中的最大者,请在【】内填入正确内容。 #include <stdio.h> main() { int x=4,y=6,z=7; int 【1】; if(【2】) u=x; else u=y; if(【3】) v=u; else v=z; printf(“v=%d”,v); } 7. 下面程序的功能是用公式 2 2 2 2 2 1 3 1 2 1 1 1 6 n + + ++ 求 π 的近似值,直到最后一项的
值小于10为止,请填空 #include <stdio. h> #include <math. h> lo 【1】pi=0; while(i*i<=1e+6){pi=【2】;i++;} pi=sgrt(6. 0*pi) printf(“pi=%10.6fn”,pi) 8.以下程序的功能是从键盘输入若干个学生成绩,统计计算出平均成绩 并输出低于平均分的学生成绩,用输入负数结束输入,请填空 main Float x[1000], sum=0.0, ave, a printf(“ Enter mark;n”); scanf(“%f”,&a) while(a>=0.08&n<1000) sum+【1】;x[n]=【2】 n++; scanf(“%f”,&a) ave=【3】 printf(“ Output:Ⅶn”,ave) for(i=0);i<n:i++ if(【4】) printf(“%fn”,x[i]) 9.下面程序输出结果是 char b[]=“ Hello,you b[5]=0; printf(“%sⅦn”,b)
4 值小于 10 - 6 为止,请填空。 #include <stdio.h> #include <math.h> main() { long i=1; 【1】 pi=0; while(i*i<=1e+6) { pi=【2】; i++; } pi=sqrt(6.0*pi); printf(“pi=%10.6f\n”,pi); } 8.以下程序的功能是从键盘输入若干个学生成绩,统计计算出平均成绩, 并输出低于平均分的学生成绩,用输入负数结束输入,请填空 main() {float x[1000], sum=0.0,ave,a; int n=0,i; printf(“Enter mark;\n”);scanf(“%f”,&a); while(a>=0.0&&n<1000) {sum+【1】 ;x[n]= 【2】; n++;scanf(“%f”,&a); } ave=【3】; printf(“Output:\n”,ave); for(i=0);i<n;i++ if(【4】) printf(“%f\n”,x[i]) } 9.下面程序输出结果是 main() {char b[]=“Hello,you”; b[5]=0; printf(“%s\n”,b); }
回答相应问题(共20分) 1.有人写出下面一条语句 printf(“a=%d,b=%d,c=%d\”,a,b,c) 编译时出现引号不配对的信息,试分析其原因。(5分) 2.试阐述“x和“x”的区别。(5分) 3.假设有定义: static char str[]={C,“h,‘i',n’,·a” 则: printf(w%s”,str);的输出结果是什么?说明理由。(5分) 4.假设有以下程序段 int a[10] 试分析两个a[10]的区别。(5分) 四、编程每题5分共10分 1.已知小鸡0.5文钱/只,公鸡2文钱/只,母鸡3文钱/只,现要求100文钱正好买100只鸡, 请给出所有的组合
5 三、回答相应问题(共 20 分) 1. 有人写出下面一条语句: printf(“a=%d, b=%d,c=%d\”, a,b,c); 编译时出现引号不配对的信息,试分析其原因。(5 分) 2. 试阐述‘x’和“x”的区别。(5 分) 3. 假设有定义:static char str[]={‘C’, ‘h’, ‘i’, ‘n’, ‘a’}; 则:printf(“%s”, str); 的输出结果是什么?说明理由。(5 分) 4.假设有以下程序段: int a[10]; …… a[10]=3; …… 试分析两个 a[10]的区别。(5 分) 四、编程每题 5 分共 10 分 1.已知小鸡 0.5 文钱/只,公鸡2文钱/只,母鸡3文钱/只,现要求 100 文钱正好买 100 只鸡, 请给出所有的组合