二级C语言笔试-48
(总分90, 做题时间90分钟)
一、选择题
在下列各题的A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。
在下列各题的A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。
1.
以下函数调用语句中实参的个数是 ( )
func((exp1,exp2),(exp3,exp4,exp5));
func((exp1,exp2),(exp3,exp4,exp5));
A 1
B 2
C 4
D 5
分值: 1
答案:B
2.
有以下程序
#includ2<stdio.h>
#include<string.h>
main()
char b1[8]="abcdefg",b2[8],*pb=b1+3,
while(--pb>b1)strcpy(b2,pB) ;
printf("%d\n",strlen(b2));
程序运行后的输出结果是 ( )
#includ2<stdio.h>
#include<string.h>
main()
char b1[8]="abcdefg",b2[8],*pb=b1+3,
while(--pb>b1)strcpy(b2,pB) ;
printf("%d\n",strlen(b2));
程序运行后的输出结果是 ( )
A 8
B 3
C 1
D 6
分值: 1
答案:D
3.
有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。则不能把结点 b连接到结点a之后的语句是 ( )
struct node
struct node
char data;
struct noe *next;
a,b, *p=&a, *q=&b;
struct noe *next;
a,b, *p=&a, *q=&b;
A B C D
分值: 1
答案:B
4.
若有说明:int * p,m=51; n;,以下正确的程序段是 ( )
A
p=&m;
scanf("%d",&p)
scanf("%d",&p)
B
p=&n;
scanf("%d",&P)
scanf("%d",&P)
C
scanf("%d",&p)
p=&n;
p=&n;
D
p=&n;
p=&m;
p=&m;
分值: 1
答案:D
5.
若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是 ( )
A p=2 *(int *)malloc(sizeof(int));
B p=(int*)calloc(2*sizeof(int));
C p=(int*)malloc(2* sizeof(int));
D p=2 *(int*)calloc(sizeof(int));
分值: 1
答案:C
6.
下列定义正确的是 ( )
A static int a[]=1,2,3,4,5
B int b[]=2,5
C int a(10)
D int 4e[4]
分值: 1
答案:A
7.
在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是 ( )
A 路径的集合
B 循环的集合
C 目标的集合
D 地址的集合
分值: 1
答案:A
8.
下面的说法不正确的是 ( )
A 函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简单的字符替换
B 函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递
C 对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏名有类型
D 调用函数只可得到一个返回值,而用宏可以设法得到几个结果
分值: 1
答案:B
9.
若要打开A盘中user子目录下名为aaa.txt的文本文件进行读、写操作,下面符合此要求的函数调用是 ( )
A fopen("A:\user\aaa.txt","r")
B fopen("A:\\user\\aaa.txt","r+")
C fopen("A:\user\aaa.txt","rb")
D fopen("A:\\user\\aaa.txt","w")
分值: 1
答案:B
10.
下列程序的输出结果是 ( )
main()
char*p1,*p2,str[50]="xyz";
p1="abcd";
p2="ABCD";
strcpy(str+2,strcat(p1+2,p2+1));
main()
char*p1,*p2,str[50]="xyz";
p1="abcd";
p2="ABCD";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A xyabcAB
B abcABz
C Ababcz
D XycdBCD
分值: 1
答案:D
11.
若有如下说明:
int a,b=5,*t=&a;
则能完成a=b赋值功能的语句是 ( )
则能完成a=b赋值功能的语句是 ( )
A &a=&b;
B *t=b;
C *t=&b;
D *a=*t;
分值: 1
答案:B
12.
若有代数式“ex+y2+y/x”,则正确的C语言表达式是 ( )
A ex+y*y+y/x
B exp x+pow(y,2)+y/x
C exp(x)+pow(y,2)+y/x
D ex+y2+y/x
分值: 1
答案:C
13.
为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 ( )
A PAD图
B N-S图
C 结构图
D 数据流图
分值: 1
答案:B
14.
执行语句“for(n=10;n>0;)printf("%d",--n+n--);”后,下列说法正确的是 ( )
A 循环体执行了5次,最终n的值是-1
B 循环体执行了6次,最终n的值是-1
C 循环体执行了6次,最终n的值是0
D 循环体执行了5次,最终n的值是0
分值: 1
答案:D
15.
下列字符串不属于标识符的是 ( )
A sum
B average
C day_night
D M,D.JOHN
分值: 1
答案:D
16.
有以下程序
#include <stdio.h>
main()
int.i=0,a=0;
while(i<20)
for(;;)
if((i%10)==0) break;
else i--;
i+=11; a+=i;
#include <stdio.h>
main()
int.i=0,a=0;
while(i<20)
for(;;)
if((i%10)==0) break;
else i--;
i+=11; a+=i;
printf("%d\n",
A
;
&nbs
&nbs
分值: 1
答案:B
c语言的冒泡排序算法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论