黑龙江省职教中心计算机专业C语言复习题三.docx
- 文档编号:8277296
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:32
- 大小:35.74KB
黑龙江省职教中心计算机专业C语言复习题三.docx
《黑龙江省职教中心计算机专业C语言复习题三.docx》由会员分享,可在线阅读,更多相关《黑龙江省职教中心计算机专业C语言复习题三.docx(32页珍藏版)》请在冰豆网上搜索。
黑龙江省职教中心计算机专业C语言复习题三
黑龙江省职教中心计算机专业C语言复习题三
一、选择题(第1-10小题每小题2分,第11-50小题第小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)以下程序的输出结果是
main()
{inta=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A)30B)31C)32D)33
(2)以下程序执行后a的值是
main()
{intx,y=252,i=386,*m=&y,*z=&i;
x=(z==y);
printf("%d",x);
}
A)252B)1C)0D)运行时出错,x无定值
(3)若 fp 是指向某文件的指针,且已读到此文件的末尾,则函数 feof(fp)的返回值是______。
A)EOF B)0 C)非零值 D)NULL
(4)下列语句中符合 C 语言语法的赋值语句是______。
A)a=7+b+c=a+7 B)a=a+7
C)a=7+b,b++,a+7; D)a=7+b,c=a+7;
(5)若有定义:
char*st="howareyou";下列程序段中正确的是
A)chara[11],*p;strcpy(p=a+1,&st[4]);
B)chara[11];strcpy(++a,st);
C)chara[11];strcpy(a,st);
D)chara[],*p;strcpy(p=&a[1],st+2);
(6)以下程序的运行结果是
#defineMIN(x,y)(x)<(y)?
(x):
(y)
main()
{inti=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10B)15C)100D)150
(7)请选出以下程序的输出结果______。
#include
sub(x,y,z)
int x,y,*z;
{ *z=y-x;}
main(){
int a,b,c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7
(8)有以下程序
main()
{chara[]={‘a’,’b’,’c’,’d’,‘e’,‘f’,‘g’,’h’,’\0’};
inti,j;
i=sizeof(a);j=strlen(a);
printf("%d,%d\b",i,j);
}
程序运行后的输出结果是
A)9,9B)8,9C)1,8D)9,8
(9)下列程序的运行结果是
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A)63B)36C)编译出错D)00
(10)若有如下语句
intx=3;
do{printf("%d\n",x-=2);}
while(!
(--x));
则上面程序段
A)输出的是1B)输出的是1和-2
C)输出的是3和0D)是死循环
(11)C语言规定,在一个源程序中,main函数的位置
A)必须在最开始B)必须在系统调用的库函数的后面
C)可以任意D)必须在最后
(12)下列数据中,不合法的C语言实型数据是
A)0.123B)123e3C)2.1e3.5D)789.0
(13)下面4个选项中,均是不合法的用户标识符的选项是
A)AP_0doB)floatla0_A
C)b-agotointD)_123tempint
(14)设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f值的数据类型为
A)intB)floatC)doubleD)不确定
(15)能正确表示逻辑关系:
"a≥10或a≤0"的C语言表达式是
A)a>=10ora<=0B)a>=0|a<=10
C)a>=10&&a<=0D)a>=10‖a<=0
(16)设以下变量均为int类型,表达式的值不为7的是
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)
(17)若有说明:
int*p,m=5,n;以下正确的程序段是
A)p=&n;scanf("%d",&p);
B)p=&n;scanf("%d",*p)
C)scanf("%d",&n);*p=n;
D)p=&n;*p=m;
(18)若变量a是int类型,并执行了语句:
a=‘A’+1.6;,则正确的叙述是
A)a的值是字符CB)a的值是浮点型
C)不允许字符型和浮点型相加D)a的值是字符’A’的ASCII值加上1
(19)有如下程序
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
该程序的输出结果是
A)0B)1C)2D)3
(20)有如下程序
main()
{intx=23;
do
{printf("%d",x--);}while(!
x);
}
该程序的执行结果是
A)321B)23C)不输出任何内容D)陷入死循环
(21)有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,在划线处应填入的选项是
#include
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if()
printf("%d",i);
}
A)i%9=5B)i%9!
=5
C)(i-5)%9!
=0D)(i-5)%9==0
(22)若变量c为char类型,能正确判断出c为小写字母的表达式是
A)’a’<=c<=‘z’B)(c>=‘a’)||(c<=‘z’)
C)(’a’<=c)and(’z’>=c)D)(c>=‘a’)&&(c<=‘z’)
(23)下面程序段的运行结果是
chara[]="lanuage",*p;
p=a;
while(*p!
=‘u’){printf("%c",*p-32);p++;}
A)LANGUAGEB)language
C)LAND)langUAGE
(24)下面程序段的运行结果是
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A)67B)0C)字符’C’的地址D)字符’C’
(25)以下不正确的定义语句是
A)doublex[5]={2.0,4.0,6.0,8.0,10.0};
B)inty[5.3]={0,1,3,5,7,9};
C)charc1[]={‘1’,‘2’,‘3’,‘4’,‘5’};
D)charc2[]={‘\x10’,‘\xa’,‘\x8’};
(26)有以下语句(0≤i≤9),则对a数组元素的引用不正确的是
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))
(27)以下叙述中正确的是______。
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C语言程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
(28)有以下程序
fun(intx,inty,intz)
{z=x*y;}
main()
{inta=4,b=2,c=6;
fun(a,b,c);
printf("%d",c);
}
程序运行后的输出结果是
A)16B)6C)8D)12
(29)函数fun的返回值是
fun(char*a,char*b)
{intnum=0,n=0;
while(*(a+num)!
=‘\0’)num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
A)字符串a的长度B)字符串b的长度
C)字符串a和b的长度之差D)字符串a和b的长度之和
(30)以下叙述中不正确的是
A)预处理命令行都必须以#号开始
B)在程序中凡是以#号开始的语句行都是预处理命令行
C)宏替换不占用运行时间,只占编译时间
D)在以下定义是正确的:
#definePI3.1415926;
(31)下列程序的输出结果是
main()
{inta[5]={2,4,6,8,10},*p,**k;
p=a;
k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
}
A)4B)22C)24D)46
(32)下面程序段的运行结果是
char*p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A)8B)12C)4D)7
(33)下列函数的运行结果是
main()
{inti=2,p;
intj,k;
j=i;
k=++i;
p=f(j,k);
printf("%d",p);
}
intf(inta,intb)
{intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);
}
A)-1B)1C)2D)编译出错,无法运行
(34)已知函数的调用形式:
fread(buf,size,count,fp),参数buf的含义是
A)一个整型变量,代表要读入的数据项总数
B)一个文件指针,指向要读的文件
C)一个指针,指向要读入数据的存放地址
D)一个存储区,存放要读的数据项
(35)有如下程序
#defineN2
#defineMN+1
#defineNUM2*M+1
main()
{inti;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是
A)5B)6C)7D)8
(36)请读程序:
#include
main()
{ int a; float b, c;
scanf("%2d%*3d%4f",&a,&b);
printf("\na=%d,b=%f,c=%f\n",a,b,c);
}
若运行时从键盘上输入 9876543210↙,则上面程序的输出结果是______。
A)a=98,b=4321.0,c=0.0
B)a=98,b=765.000000,c=0.000000
C)a=98,b=4321.000000,c=0.000000
D)a=98,b=765.0,c=4321.0
(37)请读程序:
#include
main()
{ int a, b ;
for(a = 1 , b = 1 ; a <= 100 ; a++)
{if(b >= 20) break ;
if (b%3 == 1) { b += 3 ; continue ; }
b -= 5 ;
}
printf("%d\n", a);
}
上面程序的输出结果是______。
A)7 B)8 C)9 D)10
(38)请读程序:
#include
func(int a, int b)
{ int c;
c=a+b;
return c;
}
main( )
{ int x=6,y=7,z=8,r;
r=func((x--,x+y), --z);
printf("%d\n", r);
}
上面程序的输出结果是______。
A)19 B)20 C)21 D)26
(39)以下数组定义中不正确的是______。
A)int a[2][3];
B)int b[][3]={0,1,2};
C)int c[100][100]={1};
D)int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
(40)以下程序空格所填的内容要使得所有数组元素都能输入数据,则正确答案应为____。
#include
main()
{ int a[10],i=0;
while(i<10)scanf("%d",______);
:
:
}
A)a+(i++)B)&a[i+1] C)a+i D)&a[++i]
(41)请读程序片段(字符串内没有空格字符):
printf("%d\n",strlen("ATS\n012\1\\") );
上面程序片段的输出结果是______。
A)11 B)10 C)9 D)8
(42)当执行下面的程序时,如果输入 ABC,则输出结果是______。
#include "stdio.h"
#include "string.h"
main()
{ char ss[10]="12345";
gets(ss); strcat(ss,"6789");
printf("%s\n",ss);
}
A)ABC6789 B)ABC67 C)12345ABC6D)ABC456789
(43)以下程序的输出结果是______。
long fun(int n)
{ long s;
if(n==1||n==2) s=2;
else s=n-fun(n-1);
return s;
}
main()
{ printf("%ld\n",fun(4));}
A)1 B)2 C)3 D)4
(44)以下程序的运行结果是______。
int a,b;
void fun()
{ a=100; b=200; }
main()
{ int a=5,b=7;
fun();
printf("%d%d\n",a,b);
}
A)100200 B)57 C)200100 D)75
(45)以下程序的输出结果是______。
#include
#define FUDGE(y) 2.84+y
#define PR(A) printf("%d",(int)(A))
#define PRINT1(A) PR(A);putchar('\n')
main()
{ int x=2;
PRINT1(FUDGE(5)*x);
}
A)11 B)12 C)13 D)15
(46)下面程序运行后的输出结果是______。
main()
{ unsigned short n1,n2,n3,n4,n5,a,b;
n1=n2=n3=n4=n5=100;b=5;
printf(“%d,%d,%d,%d,%d\n”,
n1&b,n2|b,n3^b,n4<>b);
}
A)100,100,97,320,3 B)5,101,97,3200,3
C)100,101,97,3200,3 D)4,101,97,3200,3
(47)若 x 是整型变量,pb 是基类型为整型的指针变量,则正确的赋值表达式是______。
A)pb=&x; B)pb=x; C)*pb=&x; D)*pb=*x
(48)若已定义:
int a[9],*p=a;并在以后的语句中未改变 p
的值,则不能表示 a[1]地址的表达式是______。
A)p+1 B)a+1 C)a++ D)++p
(49)请选出以下程序的输出结果______。
#include
sub(int *s,int y)
{ static int t=3;
y=s[t];t--;
}
main()
{ int a[]={1,2,3,4},i, x=0;
for(i=0;i<4;i++)
{
sub(a,x);printf("%d",x); }
printf("\n");
}
A)1234 B)4321 C)0000 D)4444
(50)有如下程序
intfunc(inta,intb)
{return(a+b);}
main()
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
该程序的输出的结果是
A)12B)13C)14D)15
二、填空题(每空2分,共40分)
请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分
(1)若有以下程序
main()
{intp,a=5;
if(p=a!
=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是__【1】____。
(2)若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a
if(a printf("%d%d%d\n",a,b,c); } 执行后输出结果为__【2】____。 (3)以下程序的输出结果是__【3】____。 #defineMCRA(m)2*m #defineMCRB(n,m)2*MCRA(n)+m main() {inti=2,j=3; printf("%d\n",MCRB(j,MCRA(i))); } (4)若有以下程序 intf(intx,inty) {return(y-x)*x;} main() {inta=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf("%d\n",d); } 执行后输出结果是___【4】___。 (5)以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。 例如,输入字符串: abc123edf456gh,执行程序后输出: 123456。 请填空。 #include #include main() {chars[80],d[80];inti,j; gets(s); for(i=j=0;s[i]! ='\0';i++) if(___【5】___){d[j]=s[i];j++;} d[j]='\0'; puts(d); } (6)以下程序段的输出结果是【6】 main() {inta=2,b=3,c=4; a*=16+(b++)-(++c); printf("%d",a); } (7)若变量n中的值为24,则printf()函数共输出【7】行,最后一行有【8】个数。 voidprint(intn,intaa[]) {inti; for(i=1;i {printf("%6d",aa[i]); if(! (i%5))printf("\n"); } printf("\n"); } (8)设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【9】。 for(i=0,j=10;i<=j;i++,j--)k=i+j; (9)下面函数的功能是找出一维数组元素中最大的值和它所在的 下标,最大值和它所在的下标通过形参传回。 数组元素中的值已 在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max 存放最大值,index存放最大值所在元素的下标。 请填空。 #include #include voidfun(inta[],intn,int*max,int*d) {inti; *max=a[0]; *d=0; for(i=0;【10】;i++) if(*max<【11】) {*max=a[i];*d=i;} } main() {inti,x[20],max,index,n=10; randomize(); for(i=0;i {x[i]=rand()%50;printf("%4d",x[i]);} printf("\n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d\n",max,index); } (10)以下程序的输出结果是【12】。 voidfun() {staticinta=0; a+=2;printf("%d",a); } main() {intcc; for(cc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黑龙江省 职教 中心 计算机专业 语言 复习题