一、单项选择题《本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
- C 语言中程序的执行是从()
A. 任意函数开始
B. 程序中的第一个函数开始
c.程序的第一条可执行语句开始
D. main函数开始
2,若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf(“**ln”);下面关于语句执行情况的叙述中正确的是()
A. 循环体执行两次
B. 循环体执行一次
C. 循环体一次也不执行
D. 构成无限循环
- 以下叙述中错误的是()
A. C 语言的可执行程序是由一系列机器指令构成的
B. 用 C语言编写的源程序不能直接在计算机上运行
C.通过编译得到的二进制目标程序需要连接才可以运行
D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
4,以下选项中可用作C程序合法实数的是()
A. .le0
B. 3.0e0.2
C.E9
D. 9.12E
- 有以下程序
#include <stdio.h>void main() {int x = 10, y = 5;if (!x) {y++;} else if (x == 0) {if (x) {y += 2;} else {y += 3;}}printf("%d\n", y);
}
程序运行后的输出结果是()。
A.8
B.7
C 6
D5
6.有以下程序
#include <stdio.h>void main() {char b, c;int i;b = 'a';c = 'A';for (i = 0; i < 6; i++) {if (i % 2)putchar(b);elseputchar(c);}printf("\n");
}
程序运行后的输出结果是()
A. ABCDEF
B. AbCdEf
C. aBcDeF
D. abcdef
7.有以下程序
#include <stdio.h>void fun(char *c) {while (*c) {if (*c >= 'a' && *c <= 'z') {*c = *c - ('a' - 'A');}c++;}
}int main() {char s[81];gets(s);fun(s);puts(s);return 0;
}
当执行程序时从键盘上输入Hello Hebei<回车>,则程序的输出结果是()
A. hello hebei
B. Hello Hebei
C. HELLO HEBEI
D. hELLO Hebei
8.若变量a 是 int类型,并执行了语句a=‘A’+1.6;,则正确的叙述是()
A. a 的值是字符 C
B. a 的值是浮点型
C.不允许字符型和浮点型相加
D. a的值是字符A’的ASCI值加上1
9,定义int x=10,y-20,z;执行y=z-x;x=y!=z后,变量x的值为()
A. 1
B. 10
C. 0
D. 20
10,若有变量定义double x;float a;要给x和a输入数据,正确的输入语句是
A. scanf(“%d%d”,&x,&a);
B. scanf(“%1%if,&x,&a);
C.scanf(”%f%f",&x,&a);
D. scanf(“%1%f”,&x,&a);
11.若有定义: inta=1,b=2,c=3,d-4,m=2,n=2; ,则执行(m-a>b)&&(n=e>d)后, n的值为()。
A. 1
B. 2
C. 3
D. 4
12.若 char str[10]= “I am happy”,则*(a+3)的值为()
A. T
B. ‘a’
C. ‘ ’
D. ‘m’
13,设x, y和z是int型变量,且x=3, y=10", z-5,则下面表达式中值为0的是()。
A. ‘x’&&y
B. x>=y
C. xlly+z && y-z
D. (x<y) && !z|1
- 以下程序的运行结果是()
#include <stdio.h>void fun(char *c) {while (*c) {if (*c >= 'a' && *c <= 'z') {*c = *c - ('a' - 'A');}c++;}
}int main() {char s[81];gets(s); // Note: gets is deprecated, consider using fgets insteadfun(s);puts(s);return 0;
}
Amax=3
B. max=5
C. ma=8
D. max=9
- 函数调用语句: d-max(d,max(a,max(b,c)));中实参的个数为()
A. 1
B. 2
C.3
D. 4
16.语句pntf%s", “sbiOjtaOzhuang”);执行后的输出结果为()
A. shi
B. jia
C. shi jia zhuang
D. zhuang
17.程序段如下,则以下说法中正确的是(int i=5;while(i=0) i++;
A. while 循环执行 5次
B. 循环是无限循环
C. 循环体语句一次也不执行
D. 循环体语句执行一次
- C语言允许定义函数值类型为空类型,表示函数值为空类型的类型名是()
A. int
B. float
C. double
D. void
19,有如下程序段int a=10 ,*p=&a,b=1 ; a=*p+b++;执行该程序段后,a 的值为()
A. 12
B. 11
C. 10
D. 编译出错
- 有以下程序
#include <stdio.h>
struct ord{ int x,y;}dt[2]={1,2,3,4};
void main
{
struct ord *p=dt;
printf(“%d,”.++(p->x)); printf(“%dln”,++(p->y));
}
程序运行后的输出结果是()
A. 1,2
B. 4,1
C. 3,4
D. 2,3
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)
#include <stdio.h>void fun(char *x, char *y) {char t;t = *x;*x = *y;*y = t;
}int main() {char p[] = "abc";char q[] = "123";fun(p, q);printf("%s, %s\n", p, q);return 0;
}
#include <stdio.h>int func(int x, int y);void main() {int a = 1, b = 2, c = 3, d = 4, e = 5;printf("%d\n", func((a + e, b + d, c - a), (b * e)));
}int func(int x, int y) {return (x + y);
}
#include <stdio.h>void main() {unsigned x = 23;int p = 20, d = 2, n = 5;printf("%u", (x >> (p + d - n)) & ~(~0U << n));
}
#include <stdio.h>void main() {int x = 2, a = 1, b = 0;switch (x) {case 1:a++;b++;break;case 2:a++;b--;break;case 3:a--;b++;break;}printf("a=%d, b=%d\n", a, b);
}