对外远程答案.docx
《对外远程答案.docx》由会员分享,可在线阅读,更多相关《对外远程答案.docx(20页珍藏版)》请在冰豆网上搜索。
![对外远程答案.docx](https://file1.bdocx.com/fileroot1/2023-5/16/af0c5c24-f888-4288-a132-c9f6357f8e2f/af0c5c24-f888-4288-a132-c9f6357f8e2f1.gif)
对外远程答案
对外经济贸易大学远程教育学院
2008—2009学年度第一学期
《程序设计基础》期末复习题
一、单项选择题
1.程序设计一般包含以下四个步骤,其中首先应该完成的是(B)
A.设计数据结构和算法B.建立数学模型
C.编写程序D.调试运行程序
2.下面描述中不正确的是(D)
A.程序就是软件,但软件不仅仅是程序
B.程序是指令的集会,计算机语言是编写程序的工具
C.计算机语言都是形式化语言,它有严格的语法规则和定义
D.计算机语言只能编写程序而不能表示算法
3.以下说法中正确的是(C)
A.C语言程序总是从第一个函数开始执行
B.在C语言程序中,main()函数可有可无
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
4.C语言程序的基本单位是(B)
A.语句B.函数C.程序行D.字符
5.C语言程序由什么组成(C)
A.子程序B.过程C.函数D.主程序段程序
6.以下不是C语言特点的是(B)
A、语言的表达能力强B、语法定义严格
C、数据结构系统化D、控制流程结构化
7.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的说法是(A)
A、任何不同数据类型都不可以通用
B、有些不同类型的变量可以在一个表达式中运算
C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D、同一个运算符号在不同的场合可以有不同的含义
8.下面描述中,不正确的是(B)
A、C程序的函数体由一系列语句和注释组成
B、注释内容不能单独写在一行上
C、C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明
D、scanf和printf是标准库函数而不是输入或输出语句
9.下面描述中,正确的是(C)
A、主函数中的花括号必须有,而子函数中的花括号是可有可无的
B、一个C程序行只能写一个语句
C、主函数main是C程序启动时唯一的入口
D、函数体包含了函数说明部分
10.C语言中字符(char)数据在内存中存储的是(D)
A、原码B、补码C、反码D、ASCⅡ码
11.下列可以正确表示字符型常数的是(B)
A、”a”B、’\’’C、”\n”D、297
12.以下错误的转义字符是(C)
A、’\\’B、’\’’C、’\81’D、’\0’
13.已知:
chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是(C)
A、intB、charC、floatD、double
14.已知;inti,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是(C)
A、6B、12C、30D、36
15.已知inti=5;执行语句i+=++i;i的值是(C)
A、10B、11C、12D、以上答案都不对
16.已知:
intx=1,y=2,z;则执行:
z=x>y?
++x:
++y;则z的值为(C)
A、1B、2C、3D、4
17.已知:
floata=4,b=5,c;则执行表达式“c=a=a>b”后变量a的值为(A)
A、0B、1C、4D、5
18.执行下面语句后x的值为(D)
inta=14,b=15,x;
charc=’A’;
x=((a&&b)&&(c<’a’));
A、TRUEB、FALSEC、0D、1
19.下列四个选项中,均是C语言关键字的选项是(B)
A.autoenumincludeB.switchtypedefcontinue
C.signedunionscanfD.ifstructtype
20.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)
A.必须为字母B.必须为下划线
C.必须为字母或下划线D.可以是字母,数字和下划线中任一字符
21.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)
A.2.500000B.2.750000C.3.500000D.0.000000
22.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(C)
A.intB.floatC.doubleD.不确定
23.表达式(a=3*5,a*5),a+5的值是多少(A)
A.20B.80C.不能确定D.15
24.语句:
printf("%d\n",12&&12);的输出结果是(B)
A.12B.1C.24D.0
25.C语言的语句中用作判断的表达式一般为(D)
A.关系表达式B.逻辑表达式
C.算术表达式D.逻辑表达式和关系表达式
26.若已定义x和y为double型,则表达式:
x=1,y=x+3/2的值是(C)
A.1B.2C.2.0D.2.5
27.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为(D)
A.floatB.intC.charD.double
28.若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y));
上面程序片段的输出结果是(A)
A.200B.100
C.200100D.输出格式符不够,输出不确定的值
29.表达式:
10!
=9的值是(D)
A.trueB.非零值C.0D.1
30.以下关于运算符优先顺序的描述中正确的是(C)
A.关系运算符<算术运算符<赋值运算符<逻辑运算符
B.逻辑运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑运算符
31、putchar函数可以向屏幕输出一个(D)
A、整形变量值B、实型变量值C、字符串D、字符或字符变量值
32、执行以下程序段后,c3的值是(A)
intc1=1,c2=2,c3;
c3=c1/c2;
A、0B、1/2C、0.5D、1
33、若inta,b,c;则为它们输入数据的正确输入语句是(D)
A、read(a,b,c);B、scanf(“%d%d%d”,a,b,c);
C、scanf(“%D%D%D”,&a,&b,&c);D、scanf(“%d%d%d’,&a,&b,&c);
34、若有以下程序段,其输出结果是(B)
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
A、3,0,-10B、0,0,5C、-10,3,-10D、3,0,3
35、若a为int类型,且a=125,执行下列语句后的输出是(B)
printf(“%d,%o,%x\n”,a,a+1,a+2)
A、125,175,7DB、125,176,7F
C、125,176,7DD、125,175,2F
36.表达式(int)2.1416的值是(A)
A.2B.2.1C.0D.3
37.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表达式(exp)的是(B)
A.(exp==0)B.(exp!
=0)C.(exp==1)D.(exp!
=1)
38.设intx=1,y=1;表达式(!
x||y--)的值是(B)
A.0B.1C.2D.-1
39.在C语言中,错误的int类型的常数是(A)
A.32768B.0C.037D.0xAF
40.下列正确表示字符型常数的是(B)
A.‘101’B.‘\101’C.“\n”D.297
41.有定义charch;判断ch的值是否为小写字母的表达式为(D)
A.‘a’<=ch=‘z’B.(ch>=‘a’)&(ch<=‘z’)
C.(ch>=‘a’)AND(ch<=‘z’)D.ch>=97&&ch<=122
42.以下程序的输出结果是(C)
main()
{inta=12,b=12;
printf("%d%d\n",--a,++b);
}
A.1010B.1212C.1113D.1110
43.能正确表示逻辑关系:
"a≥=10或a≤0"的C语言表达式是(D)
A.a>=10ora<=0B.a>=0||a<=10
C.a>=10&&a<=0D.a<=0||a>=10
44.下列程序的输出结果是(C)
main()
{doubled=3.2;
intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
45、已知:
inta,*p=&a;则下列函数调用中错误的是________。
A、scanf(“%d”,&a);B、scanf(“%d”,p);
C、printf(“%d”,a);D、printf(“%d”,p);
46、C语言中决定函数返回值类型的是_______。
A、return语句中的表达式类型
B、调用该函数的主调函数类型
C、调用函数时临时指定的类型
D、定义函数时所指定的函数类型
47、在下列结论中,只有一个是错误的,它是________。
A、C语言允许函数的递归调用
B、C语言中的continue语句,可以通过改变程序的结构而省略
C、有些递归程序是不能用非递归算法实现的
D、C语言中不允许在函数中再定义函数
48、在C语言的函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则________。
A、称为函数的直接递归B、称为函数的间接递归
C、称为函数的递归定义D、C语言中不允许这样的递归形式
49、已知:
int*p,a;则语句“p=&a;”中的运算符“&“的含义是_______。
A、位与运算B、逻辑与运算C、取指针内容D、取变量地址
50.以下程序的输出结果是(C)
main()
{inta=-1,b=1;
if((++a<0)&&!
(b--<=0))printf("%d%d\n",a,b);
elseprintf("%d%d\n",b,a);
}
A.-11B.01C.10D.00
51.若执行下面的程序从键盘输入3和4,则输出是(B)
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
A.14B.16C.18D.20
52.下面的程序是(D)
main()
{intx=3,y=0,z=0;
if(x==y+z)printf("****");
elseprintf("####");
}
A.有语法错误不能过通过编译B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D.输出####
53.以下程序输出结果是(B)
main()
{intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
}
A.7B.6C.5D.4
54.执行下面语句后的输出为(D)
inti=-1;
if(i<=0)printf("****\n")
elseprintf("%%%%\n")
A.****B.%%%%
C.%%%%CD.有语法错,不能执行
55.执行下列程序段后,x、y和z的值分别是(B)
intx=10,y=20,z=30;
if(x>y)z=x;x=y;y=z;
A、10,20,30B、20,30,30
C、20,30,10D、20,30,20
56.以下程序的输出结果是(D)
main()
{intw=4,x=3,y=2,z=1;
if(x>y&&(z==w))printf(“%d\n”,(ww:
zz:
x));
elseprintf(“%d\n”,(w>x?
w:
z>y?
z:
x));
}
A、1B、2C、3D、4
57.以下程序段中与语句k=a>b?
(b>c?
1:
0):
0;功能等价的是(A)
A.if((a>b)&&(b>c))k=1;elsek=0;
B.if((a>b)||(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b<=c)k=1;
D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;
58、若有:
do{i=a-b++;printf(“%d”,i);}while(!
i);则while中的!
i可用(A)代替。
A、i==0B、i!
=1C、i!
=0D、以上均不对
59.以下能对二维数组a进行正确初始化的语句是(B)
A.inta[2][]={{1,0,1}{5,2,3}};B.inta[][3]={{1,2,3},{4,5,6}};
C.inta[2][4]={{1,2,3},{4,5},{6}};D.inta[][3]={{1,0,1},{},{1,1}};
60.以下程序的输出是(B)
main()
{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(“\na=%d,b=%d”,a,b);
}
A.a=1,b=0B.a=2,b=1C.a=1,b=1D.a=2,b=2
61.阅读以下程序:
main()
{intx;
scanf("%d",&x);
if(x--<5)printf("%d"'x);
elseprintf("%d"'x++);
}
程序运行后,如果从键盘上输人5,则输出结果是(B)
A.3B.4C.5D.6
62、执行语句for(i=1;i++<4;);后,i的值是______。
(C)
A、3B、4C、5D、不定
63、若intx;则执行下列程序段后输出是______。
(B)
for(x=10;x>3;x--)
{if(x%3)x--;--x;--x;
printf(“%d”,x);
}
A、63B、74C、62D、73
64、下列说法中正确的是______。
(C)
A、break用在switch语句中,而continue用在循环语句中。
B、break用在循环语句中,而continue用在switch语句中。
C、break能结束循环,而continue只能结束本次循环。
D、continue能结束循环,而break只能结束本次循环。
65、下列程序执行的结果是(B)
inta=1,b=2,c=3,t;
while(bprintf(“%d,%d,%d”,a,b,c);
A、1,2,0B、2,1,0C、1,2,1D、2,1,1
66.以下程序的输出结果是(A)
main()
{intn=4;
while(n--)printf("%d",--n);
}
A.20B.31C.321D.210
67.假定a和b为int型变量,则执行以下语句后b的值为(D)
a=1;b=10;
do
{b=b-a;a++;}
while(b-->0);
A.-3B.-2C.-1D.-4
68.下面程序的输出是(D)
main()
{intx=3,y=6,a=0;
while(x++!
=(y-=1))
{a+=1;
if(y}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1
69.以下程序段的输出结果是(C)
intx=3;
do
{printf("%3d",x-=2);}
while(!
(--x));
A.1B.30C.1-2D.死循环
70.已知:
inta,x;则正确的赋值语句是_______。
A、a=(a[1]+a[2])/2;B、a*=*a+1;
C、a=(x=1,x++,x+2);D、a=”good”;
71、已知:
chars[10],*p=s,则在下列语句中,错误的语句是________。
A、p=s+5;B、s=p+s;C、s[2]=p[4];D、*p=s[0];
72、已知:
charb[5],*p=b;则正确的赋值语句是_______。
A、b=”abcd”;B、*b=”abcd”;C、p=”abcd”;D、*p=”abcd”;
73、下列对字符串的定义中,错误的是________。
A、charstr[7]=”FORTRAN”
B、charstr[]=”FORTRAN”
C、char*str=”FORTRAN”
D、charstr[]={‘F’,’O’,’R’,’T’,’R’,’A’,’N’,0}
74、已知:
char**s;正确的语句是_______。
A、s=”computer”;B、*s=”computer”;
C、**s=”computer”;D、*s=’A’;
75、已知:
inta,*p=&a;则为了得到变量a的值,下列错误的表达式为_______。
A、*&pB、*pC、p[0]D、*&a
76、已知:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];则以下能够正确表示数组元素a[1][2]的表达式是_______。
A、*((ptr+1)[2])B、*(*(p+5).)C、(*ptr+1)+2D、*(*(a+1)+2)
77、已知:
struct{inti;
charc;
floata;}Test;则sizeof(test)的值是__________。
A、4B、5C、6D、7
78、选择出错误的函数定义。
A、structtreefuna(s)B、int*funb(s)
structtrees[];chars[];
{…{…
}}
C、structtree*func(s)D、int*fund(s)
Char**s;char*s[10][];
{…{…
}}
79、以下对C语言中联合类型数据的正确叙述是_______。
A、一旦定义了一个联合变量之后,即可饮用该变量或该变量中的任意成员
B、一个联合变量中可以同时存放其所有成员
C、一个联合变量中不能同时存放其所有成员
D、联合类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在联合类型定义中
80、已知:
structsk
{inta;floatb;
}data,*p;
若有p=&data,则对data中的成员a的正确引用是_______。
A、(*p).data.aB、(*p).aC、p->data.aD、p.data.a
81、在以下对C语言的描述中,正确的是______。
A、在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参
B、C语言函数既可以嵌套定义又可以递归调用
C、函数必须有返回值,否则不能使用函数
D、C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
82、说明语句”int(*p)();”的含义是_______。
A、p是一个指向一维数组的指针变量
B、p是指针变量,指向一个整型数据
C、p是一个指向函数的指针,该函数的返回值是一个整型
D、p是一个指针函数,该函数的返回值是一个指向整型数据的指针
83、在对typedef的叙述中错误的是__________。
A、用typedef可以定义各种类型名,但不能用来定义变量
B、用typedef可以增加新类型
C、用typedef只是将已存在的类型用一个新的标志符来代表
D、使用typedef有利于程序的通用和移植
84、在进行文件操作时,写文件的一般含义是______。
A、将计算机内存中的信息存入磁盘B、将磁盘中的信息存入计算机内存
C、将计算机CPU中的信息存入磁盘D、将磁盘中的信息存入计算机CPU
85、C语言中标准输入文件stdin是指________。
A、键盘B、显示器C、鼠标D、硬盘
86、系统的标准输出文件stdout是指________。
A、键盘B、显示器C、软盘D、硬盘
87、在高级语言中对文件操作的一般步骤是_______.
A、打开文件——操作文件——关闭文件
B、操作文件——修改文件——关闭文件
C、读写文件——打开文件——关闭文件
D、读文件——写文件——关闭文件
88、要打开一个已存在的非空文件“file”用于修改,正确的语句是________。
A、fp=fopen(“file”,”r”);B、fp=fopen(“file”,”a+”);
C、fp=fopen(“file”,”w”);D、fp=fopen(“file”,”r+”);
89、下列关于文件的结论中正确的是_________。
A、对文件操作必须先关闭文件B、对文件操作必须先打开文件
C、对文件操作顺序没有统一规定D、以上三种答案全是错误的
90.以下程序的输出结果是(B)
main()
{inti,x[3][3]={9,8,7,6,5,4,3,2,1};
for