高职C程序设计复习 免费下载.docx
《高职C程序设计复习 免费下载.docx》由会员分享,可在线阅读,更多相关《高职C程序设计复习 免费下载.docx(14页珍藏版)》请在冰豆网上搜索。
高职C程序设计复习免费下载
高职C程序设计复习
(2009—2010学年第二学期)
选择题
1、一个C语言的源程序中,。
A)必须有一个main函数
B)可以有多个main函数
C)必须有main函数和其它函数
D)可以没有主函数但需有其它函数
2、C程序规定,在一个源程序中,main()函数的位置。
A)必须在最开始B)必须在最后
C)可以任意D)必须在系统调用的库函数的后面
3、能将高级语言编写的源程序转换为目标程序的软件是______。
A)汇编程序B)编辑程序C)解释程序D)编译程序
4、用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将______。
A)生成可执行文件B)生成目标文件
C)输出运行结果D)自动保存源文件
5、C语言中的基本数据类型包括。
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、逻辑型、字符型D)整型、实型、逻辑型、字符型
6、C语言提供的合法的数据类型关键字是________。
A)DoubleB)floatC)integerD)Char
7、在C语言中,正确的int类型的常数是。
A)-32768 B)028 C)10110B D)0xffa
8、下面四组数中,能够正确表示八进制和十六进制的整型常量是。
A)o128B)0128C)ox128D)0x128
-117Ox117-0117X117
9、下面数中不是实数的有。
-.45
4E2.5
E-3
-98.76
4.5E
-32
12E3
32.
A)
B)
C)
D)
10、以下哪组为合法的字符常量。
A)'\2’B)'5’C)’’D)"\456"
'\0xff’'\65’"&"'\027’
'10’'\”’'\128’'\xaa’
11、回车字符是。
A)‘\n’B)‘\r’C)‘\f’D)‘\b’
12、以下说法正确的是。
A)设a是实型变量,C允许赋制值a=10,因此实型变量可以存储整型值.
B)执行x=y后,x的值将是y的值,而y的值会变为0
C)只要在允许的范围内,整型和实型数都能精确无误地表示.
D)既然shortx,y;已经定义了变量,所以x=y+1.2;是正确的语句.
13、在下面关于多种类型数据的混合运算的叙述中,正确的一条是。
A)一个int型与一个double型数据运算,先将double型转成int型再进行运算
B)一个int型与一个long型数据运算,先将int型转成long型再进行运算
C)实型数据在运算时一律先转成单精度型
D)一个int型与一个char型数据运算,先将int型转成char型再进行运算
14、设inti=3,j=4;经过表达式j=i+++j+i运算后,则j的值是。
A)10B)4C)3D)11
15、对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的。
A)0为假,非0为真B)只有1为真
C)-1为假,1为真D)0为真,非0为假
16、表示关系x<=y<=z的c语言表达式为。
A)(x<=y)&&(y<=z)B)(x<=y)AND(y<=z)
C)(x<=y<=z)D)(x<=y)&(y<=z)
17、若变量c为char类型,能正确判断出c为小写字母的表达式是。
A)'a'<=c<='z' B)(c>='a')||(c<='z')
C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')
18、已有定义:
intx=3,y=4,z=5;则表达式!
(x+y)+z-1&&y+z/2的值是_。
A)6 B)0 C)2 D)1
19、执行语句”k=x++&&y++||z++;”(各变量当前值均为1)后,变量k,x,y,z值依次为。
A)1、2、2、1B)1、2、2、2
C)0、2、2、1D)0、2、2、2
20、设t是double类型变量,表达式t=1,t+5,t++的值是。
A)1B)1.0C)6.0D)2.0
21、设x,y,z,k;则执行表达式x=(y=4,z=16,k=32)后,x的值是。
A)4B)16C)32D)52
22、设inta=1,b=2,c=3;表达式c+=a>b?
++a:
++b的值是。
A)2B)3C)5D)6
23、下列叙述中,错误的是。
A)printf函数可以向终端输出若干个简单类型的数据
B)putchar函数可以向终端输出字符,而且只能是一个字符
C)getchar函数只能用来输入字符数据,但字符的个数不限
D)scanf函数可以用来输入简单类型的多个数据
24、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是__。
A)INPUTx、y、z;B)scanf("%d%d%d",&x,&y,&z);
C)scanf("%d%d%d",x,y,z);D)read("%d%d%d",&x,&y,&z);
25、以下程序段中不能根据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)y=0;if(x>=0)if(x>0)y=1;elsey=-1;
D)if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;
26、下列条件语句中,功能与其他语句不同的是。
A)if(a)printf("%d\n",x);elseprintf("%d\n",y);
B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C)if(a!
=0)printf("%d\n",x);elseprintf("%d\n",y);
D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
27、设floatx;inta,b;且已赋值.正确的switch语句是。
A)switch(x){case1.0:
printf(“*”);
case2.0:
printf(“**”);}
B)swicth((int)x){case1:
printf(“*”);
case2:
printf(“**”);}
C)switch(a+b){case1:
printf(“*”);
case2+1:
printf(“**”);}
D)switch(a-b);{case1:
printf(“*”);
case2:
printf(“**”);}
28、若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是。
A)swich(a+b); B)switch(a*a+b*b)
{case1:
y=a+b;break; {case3:
case0:
y=a-b;break;case1:
y=a+b;break;
case3:
y=b-a,break;case0:
y=a-b;break;
}}
C)switchaD)switch(a-b)
{casec1:
y=a-b;break{default:
y=a*b;break
casec2:
x=a*d;breakcase3:
case4:
x=a+b;break
default:
x=a+b;case1:
y=a-b;break;
}}
29、正确的函数定义是。
A)doublesub(intx,y){doublez;z=x-y;returnz;}
B)doublesub(intx,inty);{doublez;z=x-y;return(z);}
C)doublesub(intx,inty){z=x-y;returnz;}
D)doublesub(intx,inty){doublez=x-y;returnz;}
30、调用函数fun(a+b,(y=x++,x+1),fun(a,b,x));函数的参数个数是。
A)3B)4C)5D)6
31、下面正确的说法是。
A)return语句必须放在函数的最后
B)main()函数必须放在其他函数之前
C)任何两个函数都可以互相调用
D)return后面的表达式类型应该与函数的类型赋值相容
32、以下叙述中不正确的是。
A)在函数中,通过return语句传回函数值
B)在函数中,可以有多条return语句
C)在C中,main后的一对圆括号中也可以带有形参
D)在C中,调用函数,必需在一条独立的语句中完成
33、下列数组声明语句中,正确的是。
A)inta[]={1,2,,4,5};B)chara[5]={A,B,C,D,E};
C)inta[5]={1,2};D)chara[5]="Hello";
34、以下能正确定义数组并正确赋初值的语句是。
A)intN=5,b[N][N];B)inta[1][2]={{1},{3}};
C)intc[2][]={{1,2},{3,4}};D)intd[3][2]={{1,2},{34}};
35、inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},i;
for(i=0;i<3;i++)printf(“%d”,a[i][2-i]);将输出。
A)159B)951C)357D)753
36、inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];printf(“%d\n”,s);将输出。
A)18B)19C)20D)21
37、变量的指针,其含义是指该变量的_________。
A)值B)地址C)名D)一个标志
38、以下定义语句中正确的是。
A)chara='A'b='B'; B)floata=b=10.0;
C)inta=10,*b=&a; D)float*a,b=&a;
39、已知intx,*y;y=&x;*y=100;x+=23;printf(“%d,%d\n”,x,*y);将输出_______。
A)123,123B)100,123C)123,100D)三个结果都不对
40、已知intx,y,*p,*q;p=&x;x=100;q=p;printf(“%d”,*p+*q);
p=&y;*p=50;printf(“%d”,y+*q);将输出_______。
A)150150B)200200C)200150D)150200
41、结构体定义不正确的是。
A)structa{inta;floatb;};
B)structa{intx;structay;};
C)structa{intx;structa*y;};
D)structa{intx;inty[10];}
42、设有以下说明语句
structex{intx;floaty;charz;}example;
则下面的叙述中不正确的是。
A)struct结构体类型的关键字B)example是结构体类型名
C)x,y,z都是结构体成员名D)structex是结构体类型
43、以下选项中,能定义s为合法的结构体变量的是________。
A)typedefstructabc{doublea;charb[10];}s;
B)struct{doublea;charb[10];}s;
C)structABC{doublea;charb[10];}ABCs;
D)typedefABC{doublea;charb[10];}
44、C语言中的文件类型只有。
A)索引文件和文本文件两种B)ASCII文件和二进制文件两种
C)文本文件一种D)二进制文件一种
45、以下叙述中不正确的是。
A)C语言中的文本文件以ASCII码形式存储数据
B)C语言中对二进制文件的访问速度比文本文件快
C)C语言中,随机读写方式不适用于文本文件
D)C语言中,顺序读写方式不适用于二进制文件
46、以“只读”方式打开文本文件c:
\xy.txt,下列语句中哪一个是正确的。
A)fp=fopen(“c:
\\xy.txt”,”a”);B)fp=fopen(“c:
\\xy.txt”,”r”);
C)fp=fopen(“c:
\\xy.txt”,”wb”);D)fp=fopen(“c:
\xy.txt”,”r”);
47、以"追加"方式打开文本文件a:
\aa.dat,下列语句中哪一句是正确的。
A)fp=fopen("a:
\\aa.dat","ab");B)fp=fopen("a:
\\aa.dat","a");
C)fp=fopen("a:
\\aa.dat","r+");D)fp=fopen("a:
\\aa.dat","w");
二、填空题
复习范围:
第一章至第四章的课件(*.ppt)
三、给程序运行结果题
1、#include
voidmain()
{inta,b;
printf("a,b=");scanf("%d%d",&a,&b);
if(a>b)
printf("%d\n",a);
else
printf("%d\n",b);
}
2
#include
main()
{intn1,n2,n3,max;
printf("Pleaseinputthreenumbers:
");
scanf("%d%d%d",&n1,&n2,&n3);
if(n1>n2)max=n1;
elsemax=n2;
if(n3>max)max=n3;
printf("3numbersare:
%d,%d,%d\n",n1,n2,n3);
printf("max=%d\n",max);
}
3、
#include
main()
{charch;
for(ch='a';ch<='f';++ch)printf("%c",ch);
printf("\t\t");
for(ch='f';ch>='a';--ch)printf("%c",ch);
printf("\n");
}
4、
#include
main()
{intn;
printf("n=");scanf("%d",&n);
while(n)
{printf("%d",n%10);
n/=10;
}
printf("\n");
}
5、
#include
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}};
inti,j,b[3][2];
printf("Printarraya:
\n");
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
6、
#include
voidmain()
{inti,j;
chart[20],name[5][20]={"成都","北京","上海","广州","深圳"};
for(i=0;i<5;i++)printf("\n%s\t",name[i]);
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(strcmp(name[j],name[j+1])>0)
{strcpy(t,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],t);
}
printf("Aftersort:
\n");
for(i=0;i<5;i++)printf("\n%s\t",name[i]);
}
7、
#include
voidmain()
{voids(intn);
intn=100;
s(n);printf("n_s=%d\n",n);
}
voids(intn)
{inti;
printf("n_x=%d\n",n);
for(i=n-1;i>=1;i--)n=n+i;
printf("n_x=%d\n",n);
}
8、
#include
intpower(intn)
{intf;
if(n>1)f=power(n-1)*n;
elsef=1;
return(f);
}
voidmain()
{intn,y;
printf("n=");scanf("%d",&n);
y=power(n);
printf("%d!
=%d\n",n,y);
}
9、
#include
voidmain()
{inti=12,*p1;
floatf=3.14,*p2;
charch='p',*p3;
p1=&i;
p2=&f;
p3=&ch;
printf("i=%d,*p1=%d\n",i,*p1);
printf("f=%4.2f,*p2=%4.2f\n",f,*p2);
printf("ch=%c,*p3=%c\n",ch,*p3);
}
10、
#include
voidmain()
{inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int*p,row,col;
p=a[0];
printf("row,col=");
scanf("%d,%d",&row,&col);
printf("a[%d][%d]=%d\n",row,col,*(p+(row*4+col)));
}
四、程序填空题(此处给全部程序,但考试时程序中的空缺需要填写完整)
1、打印九九乘法表。
#include
main()
{inti,j;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%2d",i,j,i*j);
printf("\n");
}
}
2、求n阶乘n!
+1*2*3*……*(n-1)*n
#include
main()
{intfac=1,n,i;
printf("n=");scanf("%d",&n);
for(i=1;i<=n;i++)
fac*=i;
printf("%d!
=%d\n",n,fac);
}
3、计算s=1k+2k+3k+……+Nk
#include
#defineK4
#defineN5
longf1(intn,intk)/*计算Nk次方*/
{longpower=n;
inti;
for(i=1;ireturnpower;
}
longf2(intn,intk)/*计算1到n的k次方之累加和*/
{longsum=0;
inti;
for(i=1;i<=n;i++)sum+=f1(i,k);
returnsum;
}
voidmain(void)
{
printf("Sum=%d\n",f2(N,K));
}
4、有若干计算机图书,请按字母顺序,从小到大输出书名。
#include
voidsort(char*name[],intcount)
{char*p;
inti,j,min;
for(i=0;i{min=i;
for(j=i+1;jif(strcmp(name[min],name[j])>0)min=j;
if(min!
=i)
p=name[i],name[i]=name[min],name[min]=p;
}
}
voidmain()
{char*name[5]={"BASIC","FORTRAN","PASCAL","C","FoxBASE"};
inti;
sort(name,5);
for(i=0;i<5;i++)printf("%s\n",name[i]);
}
5、使用指向结构变量的指针来访问结构变量的各个成员
#include
structdate/*日期结构类型*/
{intyear;
intmonth;
intday;
};
structstd_info/*学生信息结构类型*/
{charno[7];
charname[9];
charsex[3];
structdatebirthday;/*日期结构类型使用*/
}student={"000102","张三","男",{1980,9,20}};
voidmain()
{structstd_info*p_std=&student;
printf("No:
%s\n",p_std->no);
printf("Name:
%s\n",p_std->name);
printf("Sex:
%s\n",p_std->sex);
printf("Birthday:
%d-%d-%d\n",
p_std->birthday.year,
p_std->birthday.month,
p_std->birthday.day);
}
6、制作ASC