(36) 有如下程序 #define N 2
#define M N+1
#define NUM 2*M+1
main( )
{ int i;
for(i&#61;1;i<&#61;NUM;i&#43;&#43;)
printf(“%d\n”,i);
}
该程序中的for循环执行的次数是( )
A) 5B) 6 C) 7 D) 8
(37) 有以下函数 char fun(char *p)
{ return p; }
该函数的返回值是( )
A) 无确切的值 B) 形参p中存放的地址值
B) 一个临时存储单元的地址 D) 形参p自身的地址值
(38) 有如下程序段 int a&#61;14,b&#61;15,x;
char c&#61;’A’;
x&#61;(a&&b)&&(c
执行该程序段后&#xff0c;x的值为( )
A) true B) false C) 0D) 1
(39) 有如下说明 int a[10]&#61;{1,2,3,4,5,6,7,8,9,10}, *p&#61;a;
则数值为9的表达式是( )
A) *p&#43;9B) *(p&#43;8) C) *p&#43;&#61;9 D) p&#43;8
(40) 若有以下的定义&#xff1a;int
t[3][2];能正确表示t数组元素地址的表达式是( ) A) &t[3][2] B) t[3]C) t[1] D) t[2]
(41) 有如下程序 main( )
{ char ch[2][5]&#61;{“6937”, ”8254”},
*p[2]; int i,j,s&#61;0;
for(i&#61;0;i<2;i&#43;&#43;)
p[i]&#61;ch[i]; for(i&#61;0;i<2;i&#43;&#43;)
for(j&#61;0;p[i][j]>’\0’;
j&#43;&#61;2) s&#61;10*s&#43;p[i][j]-‘0’;
printf(“%d\n”,s);
} 该程序的输出结果是( )
A) 69825 B) 63825C) 6385 D) 693825
(42)若有以下的定义:
int a[]&#61;{1,2,3,4,5,6,7,88,9,10}, *p&#61;a;
则值为3的表式是()
A)p&#43;&#61;2, *(p&#43;&#43;)B)p&#43;&#61;2,*&#43;&#43;p
C)p&#43;&#61;3, *p&#43;&#43;D)p&#43;&#61;2,&#43;&#43;*p
(43)假定所有变量均已正确说明,下列程序段运行后x的值是()
a&#61;b&#61;c&#61;0; x&#61;35;
if(!a) x--;
else if(b);if(c) x&#61;3;else x&#61;4;
A)34B)4C)35D)3
(44)在以下一组运算符中,优先级最高的运算符是()
A)<&#61;B)&#61;C)%D)&&
(45)若有以下定义和语句:
int w[2][3],(*pw)[3];pw&#61;w;
则对w数组元素非法引用是()
A)*(w[0]&#43;2)&#61;*w[0][2]B)*(pw&#43;1)[2]
C)pw[0][0]&#61;*w[0][0]D)*(pw[1]&#43;2)&#61;*w[1][2]
(46)若有以下程序片段:
char str[]&#61;"ab\n\012\\\"";
printf("%d\n", strlen(str));
上面程序片段的输出结果是()
A)3B)4C)6 D)12
(47)函数调用strcat(strcpy(str1,str2),str3)的功能是()
A)将串str1复制到串str2中后再连接到串str3之后
B)将串str1连接到串str2之后再复制到串str3之后
C)将串str2复制到串str1中后再将串str3连接到串str1之后
D)将串str2连接到串str1之后再将串str1复制到串str3中
(48)以下对C语言函数的有关描述中,正确的是()
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B) C函数既可以嵌套定义又可以递归调用
解释&#xff1a;C函数可以递归调用&#xff0c;但不允许嵌套定义
C)函数必须有返回值,否则不能使用函数
D) C程序中有调用关系的所有函数必须放在同一个源程序文件中
(49)以下叙述中不正确的是()
A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值.
B)在C中,调用函数时,实在参数和对应形参在类型上只需赋值兼容.
C)在C中,外部变量的隐含类别是自动存储类别.
D)在C中,函数形参可以说明为register变量.
(50)以下程序的输出结果是()
#define sub1(char a, char b){char c; c&#61;a;a&#61;b;b&#61;c;}
#define sub2(char*a, char b){char c; c&#61;*a;*a&#61;b;b&#61;c;}
#define sub3(char*a, char*b){char c; c&#61;*a;*a&#61;*b;*b&#61;c;}
main()
{char a,b;
a&#61;&#39;A&#39;;b&#61;&#39;B&#39;;sub3(&a,&b);putchar(a);putchar(b);
a&#61;&#39;A&#39;;b&#61;&#39;B&#39;;sub2(&a,b);putchar(a);putchar(b);
a&#61;&#39;A&#39;;b&#61;&#39;B&#39;;sub1(a,b);putchar(a);putchar(b);
}
A)BABBABB)ABBBBA
C)BABABAD)BAABBA
(51) 错误的转义字符是 ( )A) &#39;\091&#39; B) &#39;\\&#39; C) &#39;\0&#39; D) &#39;\&#39;&#39;
(52) 设int a,b,c;执行表达式a&#61;b&#61;1&#xff0c;a&#43;&#43;&#xff0c;b&#43;1&#xff0c;c&#61;a&#43;b--后&#xff0c;a,
b和c的值分别是
( )
A) 2, 1, 2B) 2,
0, 3 C) 2, 2, 3 D) 2, 1, 3
(53) 在C语言中&#xff0c;错误的常数是 ( ) A)
1E&#43;0.0 B) 5 C) 0xaf D) 0L
( 54) 设int k; 则语句for(k&#61;0; k&#61;1; k&#43;&#43;)&#xff1b;和
语句for(k&#61;0; k&#61;&#61;1;k&#43;&#43;)&#xff1b;执行的次数分别是 ( )A) 无限和0 B) 0和无限 C) 都是无限 D) 都是0
(55)某文件中定义的静态全局变量(或称静态外部变量)其作用域是( )
A) 只限某个函数B) 本文件
C) 跨文件 D)不限制作用域
二、程序填空题&#xff1a;
(10) 函数pi的功能是根据以下近似公式求π值&#xff1a;
(π*π)/6&#61;1&#43;1/(2*2)&#43;1/(3*3)&#43;…&#43;1/(n*n)
现在请你在下面的函数中填空&#xff0c;完成求π的功能。 #include “math.h”
double pi(long n) { double s&#61;0.0; long
i; for(i&#61;1;i<&#61;n;i&#43;&#43;)
s&#61;s&#43;1.0/(i*i)
; return(sqrt(6*s));
}
(14)以下函数用来在w数组中插入x, w数组中的数已按由小到大顺序存放, n所指存储单元中存放数组中数据的个数.插入后数组中的数仍有序.请填空.
void fun (int*w,intx, int *n)
{ int i,p;
p&#61;0;
w[*n]&#61;x;
while (x>w[p])p&#43;&#43;;
for(i&#61;*n;i>p;i--)w[i]&#61;w[i-1];
w[p]&#61;x;
&#43;&#43; *n;
}
(15)fun1函数的调用语句为: fun1(&a, &b, &c);它将三个整数按由大到小的顺序调整后依次放入a&#xff0c;b&#xff0c;c三个变量中,a中放最大数。请填空.
void fun2 (int *x,int *y)
{ int t;
t&#61;*x;*x&#61;*y;*y&#61;t;
}
void fun1 (int *pa,int *pb,int *pc)
{ if (*pc>*pb)fun2(pc,pb)&#xff1b;
if (*pa
if (*pa
}
16.任意输入三条边(a,b,c)后&#xff0c;若能构成三角形且为等腰、等边和直角&#xff0c;则分别输出DY、DB和ZJ&#xff0c;若不能构成三角形则输出NO。main(){float a, b, c, a2, b2, c2;scanf("%f%f%f", &a, &b, &c);printf("%5.1f,%5.1f,%5.1f", a, b, c);if(a&#43;b>c && b&#43;c>a && a&#43;c>b){if(a&#61;&#61;b || a&#61;&#61;c || b&#61;&#61;c)printf("DY");if(a&#61;&#61;b && b&#61;&#61;c)printf("DB");a2&#61;a*a;b2&#61;b*b;c2&#61;c*c;if(a2&#43;b2&#61;&#61;c2 || a2&#43;c2&#61;&#61;b2 || b2&#43;c2&#61;&#61;a2)printf("ZJ");printf("\n");}else printf("NO\n");}
17.输出下列图形。1 2 3 4 5 6 7 8 92 3 4 5 6 7 8 9
3 4 5 6 7 8 94 5 6 7 8 95 6 7 8 96 7 8 97 8 98 99
main()
{int i, j;for(i&#61;1;i<&#61;9; i&#43;&#43;)
{for(j&#61;i; j<&#61;9; j&#43;&#43;)printf("-", j);
printf("\n");} }
三、程序分析题阅读下列程序&#xff0c;将输出结果分别写到各题右侧的空白处。16.main(){int a&#61;3, b&#61;9, c&#61;2;if(a)if(b) printf("]]]\n", a, b, c);}
程序运行结果&#xff1a;&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;3&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;9&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;217.void change(int *x, int y){int t;t&#61;*x; *x&#61;y; y&#61;t;}main( ){int a&#61;3, b&#61;5;change(&a,b);printf("a&#61;%d,b&#61;%d\n",a,b);}
程序运行结果&#xff1a;a&#61;5,b&#61;5
18.main( )
{int j;for(j&#61;4; j>&#61;2; j--)switch( j ){case 0: printf("%4s","ABC");case 1: printf("%4s","DEF");case 2: printf("%4s","GHI");break;case 3: printf("%4s","JKL");default: printf("%4s","MNO");}printf("\n");}程序运行结果&#xff1a;&#xfe8f;MNO&#xfe8f;JKL&#xfe8f;MNO&#xfe8f;GHI
19.main( )
{staticint j,a[6]&#61;{1,2};for(j&#61;3; j<6; j&#43;&#43;)a[j]&#61;a[j/2]&#43;a[j%3]-a[j-2];for(j&#61;0; j<6; j&#43;&#43;)printf("]",a[j]);printf("\n");}
程序运行结果&#xff1a;&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;1&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;2&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;0&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;1&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;2&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;-1
20.int a&#61;10;int f(int a){int b&#61;0; static int c&#61;3;a&#43;&#43;; &#43;&#43;c; &#43;&#43;b;return a&#43;b&#43;c;}main(){int i;for(i&#61;0;i<2;i&#43;&#43;)print("]",f(a));printf("\n");}
程序运行结果&#xff1a;&#xfe8f;&#xfe8f;&#xfe8f;16&#xfe8f;&#xfe8f;&#xfe8f;17
21.#define N 2#define M N&#43;1#define NUM 2*M&#43;1int fib(int n){return n<3?2:fib(n-1)&#43;fib(n-2);}main(){printf("]]\n",NUM,fib(5));}
程序运行结果&#xff1a;&#xfe8f;&#xfe8f;&#xfe8f;&#xfe8f;6&#xfe8f;&#xfe8f;&#xfe8f;10
22.假设在DOS提示符下显示源程序如下(PROG.exe程序也在C
盘中)&#xff1a;C:\>type PROC.cmain(int argc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}写出执行下列命令后的输出结果C:\>PROG 2008 OLYMPIC BEIJING <回车>
程序运行结果:BEIJINGOLYMPIC2008
2004年4月二级C语言笔试试题及参考解答
一、选择题&#xff1a;
1、1MB等于(
) A) 1000字节
B) 1024字节
C)
1000*1000字节
D)
1024*1024字节2、与十六进制数200等值的十进制数为(
) A) 256 B) 512C) 1024 D) 2048
3、所谓"裸机"是指(
) A) 单片机 B) 单板机
C) 不装备任何软件的计算机 D) 只装备操作系统的计算机 4、能将高级语言编写的源程序转换为目标程序的是(
)A) 链接程序 B) 解释程序 C) 编译程序 D) 编辑程序5、在64位计算机中&#xff0c;一个字长所占字节数为(
)A) 64 B) 8 C) 4 D) 1
6、在Windows环境下&#xff0c;当一个应用程序窗口被最小化后&#xff0c;该应用程序(
)A) 继续在后台运行 B) 继续在前台运行C) 终止运行D) 暂停运行 7、在Windows环境下&#xff0c;能实现窗口移动的操作是(
)A)用鼠标拖动窗口中的任何部位
B)用鼠标拖动窗口的边框C)用鼠标拖动窗口的控制按钮
D)用鼠标拖动窗口的标题栏8、在Windows环境下&#xff0c;PrintScreen键的作用是(
)A)打印当前窗口的内容
B)打印屏幕内容C)复制屏幕到剪贴板
D)复制当前窗口到剪贴板9、Internet的通信协议是(
)A)TCP/IP B)BBS C)WWW D)FTP
10、下列叙述中正确的是(
)A)计算机病毒只感染可执行文件
B)计算机病毒只感染文本文件C)计算机病毒只能通过软件复制的方式进行传播D)计算机病毒可以通过网络或读写磁盘方式进行传播11、一个算法应该具有"确定性"等5个特性&#xff0c;下面对另外4个特性的描述中错误的是(
) A)有零个或多个输入
B)有零个或多个输出
C) 有穷性 D)可行性
12、以下叙述中正确的是(
)A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译13、以下符合C语言语法的实型常量是(
) A)1.2E0.5 B)3.14.159E C).5E-3 D)E15
14、以下4组用户定义标识符中&#xff0c;全部合法的一组是()A) _main B) If C) txt D) int
enclude -max REAL k_2
sin turbo 3COM _001
15、若以下选项中的变量已正确定义&#xff0c;则正确的赋值语句是()A)x1&#61;26.8%3 B)1&#43;2&#61;x2 C)x3&#61;0x12 D)x4&#61;1&#43;2&#61;3;
16、设有以下定义int a&#61;0;
double b&#61;1.25;
char c&#61;’A’;
#define d 2 则下面语句中错误的是( ) A)a&#43;&#43;; B)b&#43;&#43; C)c&#43;&#43;; D)d&#43;&#43;;
17、设有定义&#xff1a;float
a&#61;2,b&#61;4,h&#61;3;,以下C语言表达式与代数式计算结果不相符的是(
)A)(a&#43;b)*h/2 B)(1/2)*(a&#43;b)*h C)(a&#43;b)*h*1/2 D)h/2*(a&#43;b)
18、有以下程序
main( )
{ int x&#61;102&#xff0c;y&#61;012;
printf("-,-\n",x,y);
}执行后输出结果是()
A)10,01 B) 002,12 C)102,10 D)02,10
19、以下4个选项中&#xff0c;不能看作一条语句的是()
A) {;} B)a&#61;0,b&#61;0,c&#61;0; C)if(a>0); D)if(b&#61;&#61;0) m&#61;1;n&#61;2;
20、设有定义&#xff1a;int
a,*pa&#61;&a;以下scanf语句中能正确为变量a读入数据的是(
)
A)scanf("%d",pa);
B)scanf("%d",a);
C)scanf("%d",&pa); D)scanf("%d",*pa);
21、以下程序段中与语句k&#61;a>b?(b>c?1:0):0&#xff1b;功能等价的是()A) if ((a>b)&&(b>c))
k&#61;1; else k&#61;0;
B) if ((a>b)||(b>c))
k&#61;1&#xff1b;else k&#61;0;
C) if (a<&#61;b) k&#61;0;
D) if (a>b) k&#61;1;
else if(b<&#61;c) k&#61;1;
else if(b >c) k&#61;1;
else k&#61;0;
22、有以下程序main( )
{ char k; int i;
for(i&#61;1;i<3;i&#43;&#43;)
{ scanf("%c",&k);
switch(k)
{ case ’0’: printf("another\n");
case ’1’: printf("number\n");
}
} } 程序运行时&#xff0c;从键盘输入&#xff1a;01<回车>&#xff0c;程序执行后的输出结果是(
)A) another B) another C) another D)
number
number number number number
another number
23、有以下程序
main( )
{ int x&#61;0,y&#61;5,z&#61;3;
while(z-->0&&&#43;&#43;x<5) y&#61;y-1;
printf("%d,%d,%d\n",x,y,z);
}程序执行后的输出结果是(
)A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
24、有以下程序
main( )
{ int i,s&#61;0;
for(i&#61;1;i<10;i&#43;&#61;2) s&#43;&#61;i&#43;1;
printf("%d\n",s);
}
程序执行后的输出结果是()
A)自然数1&#xff5e;9的累加和
B)自然数1&#xff5e;10的累加和
C)自然数1&#xff5e;9中的奇数之和
D)自然数1&#xff5e;10中的偶数之