程序设计基础练习题全部有答案版.docx

上传人:b****8 文档编号:29211927 上传时间:2023-07-21 格式:DOCX 页数:53 大小:39.63KB
下载 相关 举报
程序设计基础练习题全部有答案版.docx_第1页
第1页 / 共53页
程序设计基础练习题全部有答案版.docx_第2页
第2页 / 共53页
程序设计基础练习题全部有答案版.docx_第3页
第3页 / 共53页
程序设计基础练习题全部有答案版.docx_第4页
第4页 / 共53页
程序设计基础练习题全部有答案版.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

程序设计基础练习题全部有答案版.docx

《程序设计基础练习题全部有答案版.docx》由会员分享,可在线阅读,更多相关《程序设计基础练习题全部有答案版.docx(53页珍藏版)》请在冰豆网上搜索。

程序设计基础练习题全部有答案版.docx

程序设计基础练习题全部有答案版

一、单项选择题(每小题2分,共20分)

第一章

D1.下列说法中错误的是()。

A、程序的执行总是从主函数开始

B、主函数可以调用任何非主函数的其它函数

C、任何非主函数可以调用其它任何非主函数

D、程序可以从任何非主函数开始执行

C2.若a=4,b=7,则输出4*7=28的语句是()。

A、printf(“a*b=%d\n”a+b);

B、printf(“a*b=%d\n”,a*b);

C、printf(“%d*%d=%d\n”,a,b,a*b);

D、printf(“%d*%d=%d\n”,a+b);

第三章

C1.C语言中int型数据占2个字节,则long型数据占(C)个字节。

A、1B、2C、4D、8

D2.若C中int型数据占2个字节,则double型数据占(D)个字节。

A、1B、2C、4D、8

B3.若a为整型变数,则以下语句(B)。

a=-2L;

printf(“%d\n”,a);

A、赋值不合法B、输出-2C、输出不确定值D、输出2

D4. 若int型数据占2个字节,则下列语句的输出为(D)。

intk=-1;

printf(“%d,%u\n”,k,k);

A、-1,-1B、-1,32767C、-1,32768D、-1,65535

B5. 下列程序的输出是(B)。

#include

main()

{printf(“%d\n”,null);}

A、0B、变量无定义C、-1D、1

C6.若x为float型变数,则以下语句:

x=223.82748;

printf("%6.2f\n",x);

运行结果为(C)。

A、223.8B、223.82C、223.83D、223.827

D7.        设有语句inta=3;则执行语句a+=a-=a*a后,变量a的值是(D)。

A、3B、0C、9D、-12

第四章

A1.        执行语句:

a=5,b=8;printf(“%d\n”,c=a/b);后输出的值为(A)。

A、0B、0.6C、0.625D、0.

B2.        下列语句(B)。

intk=8567;

printf(“|%06d|\n”,k);

A、输出格式描述符不合法B、输出为||

C、输出为|8567|D、输出为|-08567|

C3.        下列语句(C)。

intk=8567;

printf(“|%-06d|\n”,k);

A、输出格式描述符不合法B、输出为||

C、输出为|8567|D、输出为|-08567|

C4.        若ch为字符型,k为整,则执行下列语句后的输出为(C)。

ch=’a’;

k=12;

printf(“%x,%o,”,ch,ch,k);

printf(“k=%%d\n”,k)

A、因变量类型与格式描述符的类型不匹配,输出无定值;

B、输出项与格式描述符个数不符,输出为0或不定值;

C、61,141,k=%d;

D、61,141,k=%12

D5.        若k,g为int型变数,则下列语句的输出为(D)。

k=017;

g=111;

printf(“%d,%x\n”,++k,g++);

A、15,6fB、16,70C、15,71D、16,6f

B6.        有以下程序I和II,判断它们的输出(B)。

I#include

main()

{inta=4,b=7;

printf(“%d\n”,(a=a+1,b+a,b+1));

}

II#include

main()

{inta=1,b=2;

printf(“%d\n”,a=a+1,a+b,b+1));

}

A、I输出5,II输出2B、I输出8,II输出2

C、I输出5,II输出3D、I输出8,II输出3

A7.        下列程序的输出为(A)。

#include

main()

{intm=7,n=4;

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

printf(“%f\n”,x);

}

A、27.B、27.

C、28.D、28.

第五章

D1.        在C语言中,能代表逻辑值“真”的是(D)。

A、trueB、大于0的数C、非0整数D、非0的数

C2.        若给定表达式(M)?

(a++):

(a--),则其中表达式M(C)。

A、和(M==0)等价B、和(M==1)等价

C、和(M!

=0)等价D、和(M!

=1)等价

D3.        在C语言的if语句中,用作判断的表达式为(D)。

A、关系表达式B、逻辑表达式

C、算术表达式D、任意表达式

D4.        以下程序的输出是(D)。

#include

main()

{inti,j,k,a=3,b=2;

i=(--a==b++)?

--a:

++b;

j=a++;k=b;

printf(“I=%d,j=%d,k=%d\n”,i,j,k);

}

A、i=2,j=1,k=3B、i=1,j=1,k=2

C、i=4,j=2,k=4D、i=1,j=1,k=3

B5.        执行下面的程序:

main()

{intx;

scanf("%d",&x);

if(x++>5)printf("%d\n",x);

elseprintf("%d\n",-x);

}

若输入5,则输出为(B)。

A、6B、-6C、5D、-5

6.        有程序段:

inta,b;

a=9;b=10;

则表达式:

(++a==b--)?

--a:

++b的值为(B)。

A、8B、9C、10D、11

●7.        假设所有变量都是整型,则表达式:

a=2,b=5,a>b?

a++:

b++,a+b

的值为(B)。

A、7B、8C、9D、2

8.        下面程序的输出为(A)。

#include

voidmain()

{inta,b,c;

a=10;b=50;c=30;

if(a>b)a=b,

b=c;c=a;

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

A、a=10,b=50,c=10B、a=10,b=30,c=10

C、a=50,b=30,c=10D、a=50,b=30,c=50

C9.        下面程序运行后输出的结果是()。

main()

{intn;

for(n=0;n<3;n++)

switch(n)

{case1:

printf(“%d”,n);

case2:

printf(“%d”,n);

default:

printf(“%d”,n)

}

}

A、012B、120C、D、

10.    下面程序的输出是(B)。

#include

voidmain()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

printf(“a=%d,b=%d\n”,a,b);

}

A、a=1,b=0B、a=2,b=1C、a=1,b=1D、a=2,b=2

第六章

1.      下面循环的执行次数是(4)次。

n=0;

while(++n<5)

{printf("%3d\n",n);}

2.        C语言中,用于结构化程序设计的三种基本结构是(A)。

A、顺序结构、选择结构、循环结构;B、if、switch、break;

C、for、while、do-while;D、if、goto、continue:

3.        在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为(A)。

A、0B、1C、trueD、非0

4.        在C语言中,为了结束do-while语句构成的循环,while后一对圆括号中表达式的值应该为(A)。

A、0B、1C、trueD、非0

5.        若k为整型,则while循环执行(C)。

k=10;

while(k=0)k=k-1;

A、10次B、无限次C、0次D、2次

6.        若k为整型,则while循环执行(B)。

k=2;

while(k==0)printf(“%d”,k),k--;

printf(“\n”);

A、无限次B、0次C、1次D、2次

7.        下面程序执行后,k的值是(C)。

#include

main()

{

intk=2;

while(k==0)

printf("%d",k),k--;

printf("k=%d\n",k);

printf("\n");

}

A、0B、1C、2D、-2

8.        下面程序的输出为(B)。

#include

main()

{inti,j,x=0;

for(i=0;i<2;i++)

{x++;

for(j=0;j<=3;j++)

{if(j%2)continue;

x++;

}

x++;

}

printf("x=%d\n",x);

}

A、x=4B、x=8C、x=6D、x=12

第七章

1.        以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值,则在下划线处应填入的是(D)。

#defineN10

voidarrin(intx[N])

{intk=0;

while(k

scanf(“%d”,);

}

A、x+kB、&x[k+1]C、x+(k++)D、&x[k++]

2.        以下能正确定义数组并正确赋值的语句是(D)。

A、intN=5,a[N][N];B、intb[1][2]={{1},{3}};

C、intc[2][]={{1,2},{3,4}};6D、intd[3][2]={{1,2},{34}};

3.        不正确的字符串赋值或赋初值方式是(C)。

A、    char*str;str=”string”;

B、    charstr[7]={‘s’,’t’,’r’,’i’,’n’,’g’};

C、    charstr[10];str[10]=”string”;

D、   charstr1[]=”string”,str2[]=””;strcpy(str2,str1);

4.        若有以下定义和语句,则输出结果是(C)。

chars[12]=”abook!

”;

printf(“%d”,strlen(s));

A、9B、8C、7D、6

5.        若有以下定义和语句,则输出结果是(B)。

chars[]=”abook!

”;

printf(“%d”,sizeof(s));

A、9B、8C、7D、6

第八章

C1.C语言可执行程序的开始执行点是()。

A、第一条可执行语句B、第一个函数

C、main函数D、包含文件中的第一个函数

C2.  C语言中规定,若对函数类型未加显示说明,则函数的隐含类型为()。

A、voidB、doubleC、intD、char

C3. C语言程序中,当调用函数时()。

(不确定)

A、实参和形参各占一个独立的存储单元

B、实参和形参可以共享存储单元

C、可以由用户指定是否共享存储单元

D、由计算机系统自动确定是否共享存储单元

C4. 下面程序的输出结果为()。

#include

voidmain()

{intf();

inti=2,k;

k=f(i,++i);

printf("%d\n",k);}

intf(inta,intb)

{intc;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);

}

A、2B、1C、-1D、0

A5. 下面程序的输出结果是()。

#include

main()

{intfunc(inta,intb);

intk=4,m=1,p;

p=func(k,m);

printf("%d,",p);

p=func(k,m);

printf("%d\n",p);

}

intfunc(inta,intb)

{staticintm,n=2;

n+=m+1;

m=n+a+b;

return(m);

}

A、8,17B、8,16C、8,20D、8,8

第九章

 

C1.以下叙述正确的是()。

A、在程序的一行上可以出现多个预处理命令行

B、预处理行是C的合法语句

C、被包含的檔不一定以.h作为后缀

D、在以下定义中CR是称为“宏名”的标识符

#definefc4566CR

B2. 在“檔包含”预处理语句的使用形式中,当#include后面的文件名用“”(双引号)括起时,寻找被包含檔的方式是()。

A、直接按系统设定的标准方式搜索目录

B、先在源程序所在目录搜索,再按系统设定的标准方式搜索

C、仅仅搜索源程序所在目录

D、仅仅搜索当前目录

C3.以下叙述中不正确的是()。

A、预处理命令行都必需以#开始

B、在程序中凡是以#号开始的语句行都是预处理命令行

C、程序在执行过程中对预处理命令行进行处理

D、在下是正确的宏定义

#defineIBM_PC

C4. 以下程序的运行结果是()。

#definePT3.5

#defineS(x)PT*x*x

main()

{

inta=1,b=2;

printf(“%4.1f\n”,S(a+b));3.5*a+b*a+b

}

A、14.0B、31.5C、7.5D、10.5

C5.下面程序运行后输出的结果)。

#include"stdio.h"

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

{

inta,b,c;

a=10,b=20;

c=8*MIN(a,b);

printf("%d\n",c);

}

A、10B、20C、80D、120

A6.下面程序运行后输出的结果是()。

#include"stdio.h"

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

{

inta,b,c;

a=10,b=20;

c=8*MIN(a,b)-5;

printf("%d\n",c);

}

A、75B、15C、20D、155

C7.下面程序运行后输出的结果是()。

#include"stdio.h"

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

{

inta,b,c;

a=10,b=20;

c=MIN(a+b,a-b)*8;

printf("%d\n",c);

}

A、10B、20C、-80D、-10

第十章

1.若有以下定义和语句,且0≤i≤10,则对数组元素的错误引用是(C)。

A、*(a+i)B、a[p-a]C、p+iD、p[i]

2. 若有以下定义和语句,且0≤i≤10,则对数组元素的正确引用是(D)。

A、&(a+1)B、a++C、&pD、&p[i]

3.以下程序的输出结果是(A)。

char*alpha[6]=

{“ABCD”,”EFGH”,”IJKL”,”MNOP”,”QRST”,”UVWXYZ”};

char**p;

main()

{intk;

p=alpha;

for(k=0;k<4;k++)printf(“%c”,*(p[k]));

printf(“\n”);

}

A、AEIMB、BFJNC、ABCDD、DHLP

4.下面程序的输出结果是(D)。

#include

main()

{inta[]={1,2,3,4,5,6},*p;

p=a;*(p+3)+=2;

printf(“%d,%d\n”,*p,*(p+3));

}

A、0,5B、1,5C、0,6D、1,6

D5.若由以下说明和语句,那么对C数组元素的正确引用是()。

intc[4][5],(*cp)[5];cp=c;

A、cp+1B、(cp+3)C、*(cp+1)+3D、*(*cp+2)

 

第十一章

1. 共享体变数中起作用的成员是(C)。

A、第一次存放的成员;B、中间存放的成员;

C、最后一次存放的成员;D、所有的成员。

2. 若有以下程序段,则值为101的表达式是(C)。

structwc

{inta;

int*b;

}*p;

intx0[]={11,12},x1[]={31,32};

structwcx[2]={100,x0,300,x1};

p=x;

A、*p->bB、p->aC、++p->aD、(p++)->a

D3.如果在C程序中有main(floatargc,char*argv[]),那么类型定义错误的参数是()。

A、argvB、argv[]C、argc,argv[]D、argc

B4.若程序中由下面的说明和定义:

structstt

{intx;charb;}

structstta1,a2;

则会发生的情况是()。

A、程序将顺利编译、连接、执行B、编译出错

C、能顺利通过编译、连接,但不能执行D、能顺利通过编译,但连接出错

C5.下面程序的输出是()。

#include

voidmain()

{unsignedinta=32,b=66;

printf(“%c\n”,a|b);

}

A、66B、98C、bD、B

第十二章

1.下面程序的输出是(D)。

#include

main()

{unsignedinta=3,b=10;

printf("%d\n",a<<2|b>>1);

}

A、1B、5C、12D、13

3. 若int型是2个字节,下面程序运行后,输入331,则输出结果为(C)。

#include

voidmain()

{

unsigneda,b,c,d;

printf("enter%%oa:

");

scanf("%o",&a);

b=a>>4;

c=~(~0<<4);

d=b&c;

printf("%o,%d\n",d,d);

}

A、331,217B、13,15C、15,13D、217,331

4.若int型是2个字节,下面程序段运行后,若输入:

a=,n=3,则输出的值为(A)。

main()

{

unsigneda,b,c,d;

intn;

scanf("a=%o,n=%d",&a,&n);

b=a<<(16-n);

c=a>>n;

d=c|b;

printf("%o\n",d);

}

A、75765B、35765C、13765D、30000

D5.  表达式11&10的结果用二进制表示为()。

A、11B、3C、1D、10

B6.表达式9|5的结果十进制表示为()。

A、12B、13C、14D、15

      

第十三章

1.C语言中,文件由(D)。

A、记录组成B、由数据行组成

C、由数据块组成D、由字符(字节)序列组成

2.C语言中的文件类型只有(B)。

A、索引文件和文本文件B、ASCII文件和二进制文件两种

C、文本文件一种D、二进制文件一种

3.C语言中档的存取方式(C)。

A、只能顺序存取B、只能随机存取

C、可以顺序存取,也可以随机存取D、只能从檔开头进行存取

二、程序填空题

第三章

1.要使下面程序的输出形式为:

12+10=22,-24+10=-14,请填空。

#include

voidmain()

{

inta,b,c,d;

unsignedu;

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf("【1】+【2】=%d,【3】+【4】=%d\n",a,u,c,【5】);

}

选择答案:

【1】%d【2】%d【3】%d【4】%d【5】b,u,d

第四章

2.        下面程序不借助任务中间变量把a,b的值进行交换。

请填空。

#include

main()

{inta,b;

printf(“Inputa,b:

”);

scanf(“%d,%d”,【1】&a,&b);

a+=【2】b;b=a-【3】b;a-=【4】b;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1