计算机等级二级C语言课后练习题及答案解析.docx
- 文档编号:29092565
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:16
- 大小:22.24KB
计算机等级二级C语言课后练习题及答案解析.docx
《计算机等级二级C语言课后练习题及答案解析.docx》由会员分享,可在线阅读,更多相关《计算机等级二级C语言课后练习题及答案解析.docx(16页珍藏版)》请在冰豆网上搜索。
计算机等级二级C语言课后练习题及答案解析
2011年计算机等级二级C语言课后练习题及答案解析(5)
来源:
考试大【考试大:
考试专家,成就梦想!
】2010年11月1日
导读:
考试大特整理了2011年计算机等级二级C语言考试复习资料详解,希望对各位考生有所帮助!
>>>点击查看此系列课后练习题汇总
一、选择题
(1)下列叙述中正确的是
A)线性表是线性结构B)栈与队列是非线性结构
C)线性链表是非线性结构D)二叉树是线性结构
正确答案:
A
(2)非空的循环单链表head的尾结点(由p所指向),满足
A)p->next==NULLB)p==NULL
C)p->next=headD)p=head
正确答案:
C
(3)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是
A)堆排序B)直接插入排序
C)快速排序D)直接选择排序
正确答案:
B
(4)对建立良好的程序设计风格,下面描述正确的是
A)程序应简单、清晰、可读性好
B)符号名的命名只要符合语法
C)充分考虑程序的执行效率
D)程序的注释可有可无
正确答案:
A
(5)下列不属于结构化分析的常用工具的是
A)数据流图B)数据字典
C)判定树D)PAD图
正确答案:
A
(6)在软件生产过程中,需求信息的给出是
A)程序员B)项目管理者
C)软件分析设计人员D)软件用户
正确答案:
D
(7)下列工具中为需求分析常用工具的是
A)PADB)PFD
C)N-SD)DFD
正确答案:
D
(8)NULL是指
A)0B)空格
C)未知的值或无任何值D)空字符串
正确答案:
C
(9)数据库的故障恢复一般是由
A)数据流图完成的B)数据字典完成的
C)DBA完成的D)PAD图完成的
正确答案:
C
(10)下列说法中,不属于数据模型所描述的内容的是
A)数据结构B)数据操作
C)数据查询D)数据约束
正确答案:
C
(11)C语言程序的基本单位是
A)程序行
B)语句
C)函数
D)字符
正确答案:
C
(12)下面四个选项中,均是合法整型常量的选项是
A)160-0xffff011
B)-0xcdf01a0xe
C)-01986,0120668
D)-0x48a2e50x
正确答案:
A
(13)以下选项中合法的用户标识符是
A)long
B)_2Test
C)3Dmax
D)A.dat
正确答案:
B
(14)假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000
B)3
C)2.000000
D)3.000000
正确答案:
D
(15)以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是
A)x/y*z
B)x*(1/(y*z))
C)x/y*1/z
D)x/y/z
正确答案:
A
(16)设x,y,t均为int型变量,执行语句:
x=y=3;
t=++x||++y;
完成后,y的值为
A)不确定
B)4
C)3
D)1
正确答案:
C
(17)已知i,j,k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是
A)scanf("-,-,-",i,j,k);
B)scanf("%d%d%d",&i,&j,&k);
C)scanf("%d,%d,%d",&i,&j,&k);
D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);
正确答案:
C
(18)若变量已正确定义并赋值,下面符合C语言语法的表达式是
A)m∶=5
B)c=b=a=1
C)float8%5
D)x+5=y+2
正确答案:
B
(19)下列程序运行的结果是
main()
{floatx;
inti;
x=3.6;
i=(int)x;
printf("x=%f,i=%d",x,i);
}
A)x=3.600000,i=3
B)x=3.6,i=3
C)x=3,i=3
D)x=3.600000,i=3.000000
正确答案:
A
(20)若执行下面的程序时,从键盘上输入5和2,则输出结果是
main()
{inta,b,k;
scanf("%d,%d",&a,&b);
k=a;
if(a
elsek=b%a;
printf("%d\n",k);
}
A)5
B)3
C)2
D)0
正确答案:
C
(21)C语言中while和do-while循环的主要区别是
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件更严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
正确答案:
A
(22)以下程序的输出结果是
main()
{intx=1,y=3;
printf("%d,",x++);
{intx=0;x+=y*2;
printf("%d,%d,",x,y);
}
printf("%d,%d\n",x,y);
}
A)1,6,3,1,3
B)1,6,3,6,3
C)1,6,3,2,3
D)1,7,3,2,3
正确答案:
C
(23)下面程序输出的结果是
main()
{inti;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d",a[2-i][i]);
}
A)159
B)753
C)357
D)591
正确答案:
B
(24)请阅读以下程序:
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("***\n");
elseprintf("$$$\n");
}
以上程序
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
正确答案:
D
(25)以下程序的输出结果是
main()
{charc=′z′;
printf("%c",c-25);
}
A)a
B)Z
C)z-25
D)y
正确答案:
A
(26)下面函数的功能是
char*fun(char*str1,char*str2)
{while((*str1)&&(*str2++=*str1++));
returnstr2;
}
A)求字符串的长度
B)比较两个字符串的大小
C)将字符串str1复制到字符串str2中
D)将字符串str1接续到字符串str2中
正确答案:
C
(27)下面函数调用语句含有实参的个数为
func((exp1,exp2),(exp3,exp4,exp5));
A)1
B)2
C)4
D)5
正确答案:
B
(28)下面程序段的运行结果是
char*s="abcde";
s+=2;printf("%d",s);
A)cde
B)字符′c′
C)字符′c′的地址
D)无确定的输出结果
正确答案:
C
(29)已有变量定义和函数调用语句:
inta=25;print_value(&a);下面函数的正确输出结果是
voidprint_value(int*x)
{printf("%d\n",++*x);}
A)23
B)24
C)25
D)26
正确答案:
D
(30)当顺利执行了文件关闭操作时,fclose函数的返回值是
A)-1
B)TRUE
C)0
D)1
正确答案:
C
(31)设有如下定义
char*s[2]={"abcd","ABCD"};
则下列说法错误的是
A)s数组元素的值分别是"abcd"和"ABCD"两个字符串的首地址
B)s是指针数组名,它含有两个元素分别指向字符型一维数组
C)s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素
D)s数组的两个元素中分别存放了字符′a′和′A′的地址
正确答案:
C
(32)以下不能对二维数组a进行正确初始化的语句是
A)inta[2][3]={0};
B)inta[][3]={{1,2},{0}};
C)inta[2][3]={{1,2},{3,4},{5,6}};
D)inta[][3]={1,2,3,4,5,6};
正确答案:
C
(33)有以下程序
structSTU
{charnum[10];floatscore[3];};
main()
{structSTUs[3]={{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90},
},*p=s;
inti;floatsum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是
A)260.00
B)270.00
C)280.00
D)285.00
正确答案:
B
(34)若有说明:
inta[10];则对a数组元素的正确引用是
A)a[10]
B)a[3,5]
C)a(5)
D)a[10-10]
正确答案:
D
(35)下面程序段中,输出*的个数是
char*s="\ta\018bc";
for(;*s!
=′\0′;s++)printf("*");
A)9
B)5
C)6
D)7
正确答案:
C
(36)设有如下函数
fun(floatx)
{
printf("\n%d",x*x);}
则函数的类型是
A)与参数x的类型相同
B)是void
C)是int型
D)无法确定
正确答案:
C
(37)有如下定义
#defineD2
intx=5;floaty=3.83;
charc=′D′;
则下面选项中错误的是
A)x++;
B)y++;
C)c++;
D)D++;
正确答案:
D
(38)以下程序段的执行结果为
#definePLUS(X,Y)X+Y
main()
{intx=1,y=2,z=3,sum;
sum=PLUS(x+y,z)*PLUS(y,z);
printf("SUM=%d",sum);
}
A)SUM=9
B)SUM=12
C)SUM=18
D)SUM=28
正确答案:
B
(39)C语言规定,函数返回值的类型是由
A)return语句中的表达式类型所决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
正确答案:
D
(40)下列程序的运行结果是
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=2004,b=9,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A)20049
B)92004
C)00
D)编译时出错
正确答案:
A
(41)下列程序是用来判断数组中特定元素的位置所在。
如果输入如下整数:
876675896101301401980431451777
#include
#include
intfun(int*s,intt,int*k)
{inti;
*k=0;
for(i=0;i
if(s[*k]
returns[*k];
}
main()
{
inta[10]={876,675,896,101,301,401,980,431,451,777},k;
clrscr();
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
则输出结果为
A)7,431
B)6
C)980
D)6,980
正确答案:
D
(42)C语言结构体类型变量在程序执行期间
A)所有成员一直驻留在内存中
B)只有一个成员驻留在内存中
C)部分成员驻留在内存中
D)没有成员驻留在内存中
正确答案:
A
(43)下面程序应能对两个整型变量的值进行交换。
以下正确的说法是
main()
{inta=10,b=20;
printf("
(1)a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("
(2)a=%d,b=%d\n",a,b);
}
swap(intp,intq)
{intt;
t=p;p=q;q=t;
}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D)以上说法都不对
正确答案:
D
(44)有以下程序
#include
main()
{char*p,*q;
p=(char*)malloc(sizeof(char)*20);q=p;
scanf("%s %s",p,q);printf("%s%s\n",p,q);
}
若从键盘输入:
abcdef<回车>,则输出结果是
A)defdef
B)abcdef
C)abcd
D)dd
正确答案:
A
(45)以下程序的输出结果是
intf()
{staticinti=0;
ints=1;
s+=i;i++;
returns;
}
main()
{inti,a=0;
for(i=0;i<5;i++)a+=f();
printf("%d\n",a);
}
A)20
B)24
C)25
D)15
正确答案:
D
46)已知inta=1,b=3则a^b的值为
A)3
B)1
C)2
D)4
正确答案:
C
(47)如果需要打开一个已经存在的非空文件"Demo"进行修改下面正确的选项是
A)fp=fopen("Demo","r");
B)fp=fopen("Demo","ab+");
C)fp=fopen("Demo","w+");
D)fp=fopen("Demo","r+");
正确答案:
D
(48)若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A)fopen("A:
\user\abc.txt","r")
B)fopen("A:
\\user\\abc.txt","rt+")
C)fopen("A:
\user\abc.txt","rb")
D)fopen("A:
\user\abc.txt","w")
正确答案:
B
(49)有以下程序
#include
main()
{char*p="abcde\0fghjik\0";
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A)12
B)15
C)6
D)5
正确答案:
D
(50)有以下程序
#include
structNODE
{intnum;structNODE*next;};
main()
{structNODE*p,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d\n",p->num+q->next->num);
}
程序运行后的输出结果是
A)10
B)20
C)30
D)40
正确答案:
D
(1)冒泡排序算法在最好的情况下的元素交换次数为【1】。
正确答案:
1.(0)
(2)在最坏情况下,堆排序需要比较的次数为【2】。
正确答案:
1.(O(nlog2n))
(3)若串s="MathTypes",则其子串的数目是【3】。
正确答案:
1.(46)
(4)软件开发环境是全面支持软件开发全过程的【4】集合。
正确答案:
1.(软件工具)
(5)关系数据库的关系演算语言是以【5】为基础的DML语言。
正确答案:
1.(谓词演算)
(6)下列y的值是【6】。
inty;y=sizeof(2.25*4);
正确答案:
1.(8)
(7)下列x的值是【7】。
intx;x=sizeof2.25*4;
正确答案:
1.(32)
(8)以下程序的输出结果是【8】。
main()
{inti=010,j=10;
pirntf("%d,%d\n",i,j);
}
正确答案:
1.(8,10)
(9)下列程序的输出结果为【9】。
main()
{intx=3,y=5;
printf("%d",x=(x--)*(--y));
}
正确答案:
1.(12)
(10)以下程序的输出结果是【10】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d",a)
}
正确答案:
1.(31)
11)若有inta=1;intb=2;则a|b的值为【11】。
正确答案:
1.(3)
(12)已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=′a′+′8′-′3′的值为【12】。
正确答案:
1.(f)
(13)若从键盘输入58,则以下程序输出的结果是【13】。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
正确答案:
1.(585858)
(14)下列程序的输出的结果是【14】,【15】。
main()
{inti,jrow,colum,m;
staticintarray[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};
m=array[0][0];for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(array[i][j]<m)
{m=array[i][j];colum=j;row=i;}
printf("%d,%d,%d\n",m,row,colum);
}
正确答案:
1.(-850,)
(15)以下程序中,select函数的功能是:
在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。
请填空。
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=1,colum=1;
for(i=0;i
for(j=0;j
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=【16】;
return【17】;
}
main()
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}
正确答案:
1.(row)2.(a[row][colum])
(16)函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s 请填空。 my_cmp(char*s,char*t) {while(*s==*t) {if(*s==′\0′)return0; ++s;++t; }return【18】; } 正确答案: 1.(*s-*t) (17)若有以下说明和定义语句,则变量w在内存中所占的字节数是【19】。 unionaa{floatx;floaty;charc[6];}; structst{union
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 等级 二级 语言 课后 练习题 答案 解析