程序设计基础复习题.docx

上传人:b****7 文档编号:10379953 上传时间:2023-02-10 格式:DOCX 页数:20 大小:24.88KB
下载 相关 举报
程序设计基础复习题.docx_第1页
第1页 / 共20页
程序设计基础复习题.docx_第2页
第2页 / 共20页
程序设计基础复习题.docx_第3页
第3页 / 共20页
程序设计基础复习题.docx_第4页
第4页 / 共20页
程序设计基础复习题.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

程序设计基础复习题.docx

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

程序设计基础复习题.docx

程序设计基础复习题

一、基础知识

(1)C语言程序总是从main开始,在main中结束

(2)C源程序的后缀名是.c

(3)源程序经过编译后生成的结果称为目标程序,,其后缀名为.obj。

(4)结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构

(5)下列哪项不是C语言的特点()

A)结构化程序设计语言B)高级语言C)面向过程D)面向对象

(6)C语言的函数体由()括起来

A){}B)()  C)/**/ D)[]

(7)以下叙述中正确的是()

A)main()函数必须放在其它函数之前(错误,main函数可以在任何地方出现)

B)可以在一个函数中定义另一个函数(错误,函数不能嵌套定义,但可以嵌套调用)

C)构成C程序的基本单位是函数

D)所有被调用的函数一定要在调用之前进行定义(错误,只要在调用之前声明即可,且函数类型为整型(字符型)的函数声明都可以省略)

E)C程序的每行中只能写一条语句(错误,可以写多条语句,每条语句用分号隔开)

F)C语言本身没有输入输出语句

G)在对一个C程序进行编译的过程中,可发现注释中的拼写错误(错误,注释是不参加编译的,注释中的拼写错误无法检查出来)

(8)下列关于C语言用户标识符的叙述中正确的是()

A用户标识符中不可以出现中划线,但可以出现下划线

B用户标识符中可以出现下划线和@符号

C用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头.

D用户标识符中可以出现下划线,但不可以放在用户标识符的开头

(9)判断下列哪些是C语言中的合法的用户自定义标识符(红色标出的为非法标识符)

sumSumM.D.JohndayDate3days#33lotus_1_2_3char(关键字,不能用作变量名)student_namea>b_above$123

2Cmeana+bint(关键字,不能用作变量名)5$float(关键字,不能用作变量名)

(10)下列选项中,不能用作标识符的是()

A)int_2_B)_1234_C)2_inD)t__1_2

(11)以下()是正确变量名

A)f.5B)_f5C)5fD)if

(12)若有定义:

#definePI1,则表达式PI*3*2的值为()

A)3B)6C)18D)不确定

(13)已定义a为字符型变量,则下列语句中正确的是()

A)a='100';B)a="100";C)a=100;D)a="d";

(14)请问下面两个程序段得到的j的值分别是多少?

a)i=3;j=++i;答:

i=4,j=4

b)i=3;j=i++;答:

i=4,j=3

(15)doublea=2.5,b=5.5,则表达式(int)a+b/b的值是(3.000000),表达式(int)(a+b/b)的值是(3)

(16)设intx=3,y=4,z=5,则下列表达式中的值为0的是()

A)‘x’&&’y’B)x||y+z&&y-zC)x<=yD)!

((x

z||1)

(17)以下关于运算符优先顺序的描述中正确的是(   )。

A、关系运算符<算术运算符<赋值运算符<逻辑与运算符

B、逻辑与运算符<关系运算符<算术运算符<赋值运算符

C、赋值运算符<逻辑与运算符<关系运算符<算术运算符

D、算术运算符<关系运算符<赋值运算符<逻辑与运算符

(18)已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!

y)的值是 1 。

(19)若a=2,b=3,c=-1,d=5,则表达式a+b>c+d&&a>=c+d||c>0||d<0的值为

(20)判断char型变量ch是否为大写字母的正确表达式为(ch>=‘A’)&&(ch<=‘Z’)

(21)请写出判断year是否是闰年的表达式((year%4==0&&year%100!

=0)||year%400==0)

(22)若有定义:

inta=5,b=2,c=1;则表达式a-b

(23)scanf("%d:

%d:

%d",&h,&m,&s);若要给h输入12,给m输入30,给s输入10,正确的输入操作为:

12:

30:

10

(24)intnum;使用scanf()函数输入一个整数给变量num,正确的函数调用是()

A、scanf(“%d”,num);B、scanf(“%f”,&num);

C、scanf(“d”,&num);D、scanf(“%d”,&num);

(25)intx,y;scanf(“%d,%d”,&x,&y);若要求x、y的值分别为1和2,正确的数据输入是1,2

(26)C语言中运算对象必须是整型的运算符是()。

A)%B)/C)=D)<=

(27)假设所有变量均为整型,则表达式“a=2,b=5,b++,a+b”的值是()

A.8B.7C.6D.2

(28)有以下程序段

main(){

intm=0,n=0;charc='a';

scanf("%d%c%d",&m,&c,&n);

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

}

若从键盘上输入:

10,10<回车>,则输出结果是:

()

A)10,a,10B)10,,,10C)10,a,0D)0,a,0

(29)下列关于单目运算符++、--的叙述中正确的是()

A它们的运算对象可以是任何变量和常量

B它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D它们的运算对象可以是char型变量、int型变量和float型变量

(30)getchar()函数的功能是从终端输入一个字符,putchar()函数的功能是向终端输出一个字符

(31)表达式9/4的结果是2。

表达式9%4的结果是1。

(32)当a=5,b=4,c=2时,表达式a>b!

=c的值是1

(33)若a=2,b=3,c=-1,d=5,则表达式a+b>c+d&&a>=c+d||c>0||d<0的值为0。

(34)main()

{inti=10,j=1;

printf("%d,%d\n",i--,++j);

}

程序的运行结果是10,2

(35)main()

{inti=8;

printf(“%d,%d,%d\n”,++i,--i,i--);

}

程序的运行结果是7,6,8

二、选择语句

(1)符号函数

┌1x>0

y=┤0x=0

└-1x<0

以下程序段中不能根据x的值正确计算出y的值的是()

A)if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

B)y=0;if(x>0)y=1;elseif(x<0)y=-1;

C)if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;

D)y=0;if(x>=0)if(x>0)y=1;elsey=-1;

(2)能正确描述下列程序逻辑关系的是()

if(a

{if(c==d)

x=1;}

else

x=2;

A)当a

=d时,x=2

B)当a

=d时,x=2

C)当a=b时,x=2

D)当a=b且c!

=d时,x=2

(3)intmain()

{inta,b,s;

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

s=a;

if(a

s*=s;

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

return0;}

若执行以上程序时从键盘上输入1□2,则输出结果是4(□表示空格)。

(4)intmain()

{inti;

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

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);}

return0;}

上述程序的输出结果011122

(5)main(){

intx=1,y=2,z=0,i=3;

if(x

if(x

printf(“z=%d”,z);

}

上述程序的输出结果2

(6)判断char型变量cl是否为小写字母的正确表达式为

(c1>=’a’)&&(c1<=’z’)

(7)下列程序的输出结果是_a=1,b=3,c=1______________________

inta=1,b=2,c=3;

if(a>b)a=b;b=c;c=a;printf(“a=%db=%dc=%d\n”,a,b,c);

(8)下列程序的输出结果是_a=1,b=2,c=3______________________

inta=1,b=2,c=3;

if(a>b){a=b;b=c;c=a;}printf(“a=%db=%dc=%d\n”,a,b,c);

三、循环语句

(1)以下程序中,while循环的循环次数是()

main()

{intnum=0;

while(num<10)

{if(num<1)continue;

if(num==5)break;

num++;}

}

A)1B)10C)6D)死循环,不能确定次数

(2)以下程序中,while循环的循环次数是()

main()

{inti=0;

while(i=1)

{if(i==5)break;

i++;}

}

A)死循环,不能确定次数B)1C)5D)6

(3)以下程序执行后sum的值是()。

main()

{inti,sum;

for(i=1;i<5;i++)

sum+=i;

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

A)10B)4C)0D)不确定

(4)下列语句中与语句while(!

exp);中的条件!

exp等价的是()

A)exp==0B)exp!

=0C)exp!

=1D)运行时出错

(5)for(i=1;i=10;i++)printf(“%d\n”,i);请问程序段中for循环执行的次数是(),

A)有语法错,不能执行B)执行1次C)一次也不执行D)无限次

(6)下面有关for循环的正确描述是()

A)for循环体语句中,可以包含多条语句,但要用花括号括起来

B)for循环是先执行循环体语句,后判定表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环只能用于循环次数已经确定的情况

(7)下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环,请根据上述功能完成以下程序。

intn=0,c;

c=getchar();

while(c!

=’\n’)

{if(c>=’0’&&c<=’9)n++;

c=getchar();}

(8)在C语言中while循环和do—while循环的主要区别是do—while的循环至少无条件执行一次,while的循环体不是

(9)main()

{intnum=5;

 while(num>=0)

  {num--;

  printf(“%d”,num);}

return0;}

上述程序的运行结果43210-1

(10)inti=0;charch;

do

{scanf("%c",&ch);

i++;

}while(ch!

=’q’&&i<10);

请问该循环的结束条件是!

(ch!

=’q’&&i<10)即(ch==’q’||i>=10)。

(11)main(){

inti,sum;

i=sum=0;

while(i<=5)

{sum+=i;

i++;}

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

}

上述程序的输出结果是15

四、数组

(1)假设有定义inta[100],则下标最大的数组元素为a[99],下标最小的数组元素为a[0],数组a在内存中所占字节数为100*sizeof(int)。

(2)已知:

charc[]={"chongqing"};将字符数组c中整个字符串一次输出的语句书写格式为puts(c)或printf(“%s”,c)。

(3)定义3行4列的整型二维数组a的语句是__inta[3][4]_______;

(4)若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是_0____,a[2][1]得到的初值是___6______

(5)以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

请将该函数补充完整。

#defineN10

voidarrin(intx[N])

{inti=0;

while(i

scanf("%d",___&x[i++]____);

}

(6)以下能正确定义一维数组的选项是()

A)intnum[];B)intnum[0..100];

C)intN=100;D)#defineN100

intnum[N];intnum[N];

(7)以下不能正确进行字符串赋初值的语句为()。

A:

charstr[4]="boy!

"B:

charstr[]="boy!

"

C:

char*str="boy!

"D:

charstr[5]={'b','o','y',’!

’}

(8)假设charstr[6]={‘a’,‘b’,‘\0’,‘d’,‘e’,‘f’};则语句printf(“%s”,str);的输出结果是()

A.ab\B.abdefC.ab\0D.ab

(9)定义chara[]=“chongqing”;charb[]=“china”;以下程序运行后输出()

strcpy(a,b);printf(“%c”,a[2]);

A.cB.oC.iD.\0

(10)以下程序段运行后屏幕输出为()

chara[]=”Ilove\0china”;

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

A、1B、6C、11D、13

(11)以下程序段运行后屏幕输出为()

charstr[20];

strcpy(str,"china");

printf("%d",strlen(str));

A)20B)5C)6D)7

(12)若有定义:

inta[5]={1,2,3,4,5};则语句a[1]=a[3]+a[2+2]-a[3-1];运行后a[1]的值为()

A)6B)5C)2D)1

(13)假设int型变量占2个字节的存储单元,若有定义:

intx[5]={0,1};

则数组x在内存中所占字节数为()。

A)5B)2C)10D)4

(14)在定义intb[4][5]后,对b的引用正确的是()

A.b[0,1]B.b[4][0]C.b[2][5]D.b[1][1]

(15)以下语句把字符串“abc”赋初值给字符数组,不正确的语句是()

A.chars[]=“abc”;B.chars[]={’a’,’b’,’c’’\0’};

C.chars[]={“abc”};D.chars[3]=“abc”;

(16)以下对二维数组a的正确说明是()

A.inta[3][];B.floata(3,4);C.doublea[1][4];D.floata(3)(4);

(17)用inta[10]={1,2};对数组进行初始化后,数组元素a[3]的值是()

A)随机值B)FC)0D)1

(18)知inta[10];则对a数组元素引用不正确的是()

A.a[10]B.a[3+5]C.a[10-10]D.a[5]

(19)以下能正确定义数组并正确赋初值的语句是()

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

C)inta[3][2]={{1,2},{34}};D)inta[2][]={{1,2},{3,4}};

(20)main()

{inti,pod;

for(i=1;i<10;i++)pod*=i;

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

return0;}

上述程序的输出结果无法确定

(21)有以下程序

main()

{chars[]="\n123\\";

printf("%d%d\n",strlen(s),sizeof(s));

}

上述程序的输出结果56

(22)设有如下程序段:

inta[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0;

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

for(j=0;j

s=s+a[i][j];

则执行该程序段后,s的值是2

(23)main()

{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};

intj,s=1;

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

s=s*a[j][j];

printf("%d",s);}

上述程序的运行结果是:

45

5、函数

(1)C语言中的变量按作用域范围可分为局部变量和全局变量。

(2)以下程序的功能是调用函数fun计算:

m=1+2+3+4+…+9+10,并输出结果,请将该程序补充完整。

intfun(intn)

{intm=0,i;

for(i=___1___;i<=n;__i++____)

{m=___m+i____;}

return_m____;}

main()

{printf("m=%d\n",__fun(10)____);}

(3)关于C语言函数的描述中,正确的是()

A)函数的定义可以嵌套,但函数的调用不可以嵌套

B)函数的定义和函数的调用都可以嵌套

C)函数的定义不可以嵌套,但函数的调用可以嵌套

D)函数的定义和函数的调用都不可以嵌套

(4)C语言规定,函数返回值的类型由()。

A.在定义该函数时所指定的函数类型所决定。

B.调用该函数时的主调函数类型所决定。

C.调用该函数时系统临时决定。

D.return语句中的表达式类型所决定。

(5)若程序中定义了以下函数

doublemyadd(doublea,doubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是()。

A)doublemyadd(doublex,doubley);

B)doublemyadd(doublea,b);

C)doublemyadd(doublea,doubleb);

D)doublemyadd(doubleb,doublea);

(6)有以下函数定义:

()

voidfun(intn,doublex){……}

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是

A、k=fun(10,12.5);B、fun(intn,doublem)

C、voidfun(n,x);D、fun(10,12.5);

(7)若程序中定义了以下函数

intadd(intx,inty)

{return(x+y);}

并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是()

A、intadd(intb,inta);B、intadd(int,int);

C、intadd(inta,b);D、intadd(intx,inty);

(8)voidfun(inty)

{intx=2;

x=y++;

printf(“%d”,x);}

intmain()

{intx=1,y=3;

fun(y);

x=y++;

printf(“%d”,x);

return0;}

程序的运行结果是33

(9)#include

intf(intx,inty)

{return(x+y);}

main()

{inta=2,b=3,c;

c=f(a,b);

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

程序的运行结果是2+3=5

(10)main()

{inta,b;

voidp(intx,inty);

a=2;

b=3;

p(a,b);

p(a+b,a);

return0;}

voidp(intx,inty)

{y=x+y;

printf(“%d%d”,x,y);}

程序的运行结果是2557

(11)intmin(intx,inty)

{intz;

z=(x

x:

y;

return(z);

}

main()

{inta=1,b=2,c;

c=min(a,b);

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

}

程序的运行结果是min=1

(12)有以下程序

voidf(intx,inty)

{intt;

if(x

}

main()

{inta=4,b=3,c=5;

f(a,b);f(a,c);f(b,c);

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

}

程序的运行结果是4,3,5

(13)main()

{voidprint(intw);

print(3);}

voidprint(intw)

{inti;

if(w!

=0)

{print(w-1);

for(i=1;i<=w;i++)

printf("%d",w);

printf("\n");}

}

程序的运行结果是1

22

333

6、指针

(1)指针运算符是*,取地址运算符为&

(2)变量的指针,其含义是指该变量的地址

(3)已知程序:

chara[]="good";char*P;P=a;则

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

当前位置:首页 > 总结汇报 > 学习总结

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

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