C语言程序设计复习题二.docx
- 文档编号:10052383
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:18
- 大小:22.06KB
C语言程序设计复习题二.docx
《C语言程序设计复习题二.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习题二.docx(18页珍藏版)》请在冰豆网上搜索。
C语言程序设计复习题二
C语言程序设计复习题二
一.单项选择题
1.按照C语言的规定,能作为用户标识符的是()。
A)intB)5aC)abc_123D)unsigned
2.编译操作的功能是把源程序转换成()。
A)源程序B)目标程序C)可执行程序D)汇编程序
3.定义下面语句,编译会出错的是()。
A)chara='x';B)chara='\t';C)chara='cc';D)chara='\101';
4.以下选项中正确的定义语句是()。
A)doublex;y;B)doublex=y=7;C)doublex=7,y=7;D)double,x,y;
5.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的条件表达式(x-y)等价的是()。
A)(x-y>0)B)(x-y<0)C)(x-y<0||x-y>0)D)(x-y==0)
6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。
A)均占4个字节B)根据数据的大小来决定所占内存的字节数
C)由用户自己定义D)由C语言编译系统决定
7.设有定义:
intx=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)x++B)x+=1C)++xD)x+1
8.若有定义语句:
intx=10;,则表达式x-=x+x的值为()。
A)-20B)-10C)0D)10
9.有以下程序
voidmain()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);}
程序运行后的输出结果是()。
A)2,3,3B)2,3,2C)2,3,1D)2,2,1
10.以下叙述中正确的是()。
A)C语言是一种非结构化程序设计语言
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题
D)结构化程序设计不提倡模块化的设计方法
11.有以下程序
#include
voidmain()
{chare1,e2;
e1=’A’+’8’-‘4’;
e2=’A’+’8’-‘5’;
printf(“%c,%d\n”,e1,e2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是()
A)E,68B)D,69C)E,DD)输出无定值
12.有以下程序
voidmain()
{inta=0,b=0;
a=10;/*给a赋值
b=20;给b赋值*/
printf("a+b=%d\n",a+b);}
程序运行后输出结果是()。
A)a+b=10B)a+b=30C)30D)出错
13.有以下程序
#include
voidmain()
{inta=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\n”,a=2*b);
}
程序运行后的输出结果是()。
A)0,0B)1,0C)3,2D)1,2
14.执行以下程序段后,w的值为()。
intw='A',x=14,y=15;
w=((x||y)&&(w<'a'));
A)-1B)NULLC)lD)0
15.当y表示大于1的奇数时,值为0的表达式是()。
A)y%2==1B)y/2C)y%2!
=0D)y%2==0
16.有以下程序段
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d\n”,a,b,c);程序的输出结果是()。
A)a=10b=50c=10B)a=10b=50c=30C)a=10b=30c=10D)a=50b=30c=50
17.当变量c的值不为2、4、6时,值也为“真”的表达式是()。
A)(c==2)||(c==4)||(c==6)
B)(c>=2&&c<=6)||(c!
=3)||(c!
=5)
C)(c>=2&&c<=6)&&!
(c%2)
D)(c>=2&&c<=6)&&(c%2!
=1)
18.以下叙述中错误的是()。
A)break语句只能用于switch语句中
B)在switch语句中可以不使用default
C)break语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用不相同
19.有以下程序
#include
voidmain()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);}
程序的运行结果是()。
A)0B)1C)2D)3
20.有以下程序
#include
voidmain()
{inti,j;
for(i=3;i>=1;i--)
for(j=1;j<=2;j++)
printf("%d",i+j);
}
程序的运行结果是()。
A)234B)432345543C)23D)453423
21.以下关于字符串的叙述中错误的是()。
A)C语言中没有字符串类型的常量和变量
B)两个字符串中的字符个数不相同时,也能进行字符串大小的比较
C)不能简单用关系运算符对字符串的大小进行比较
D)空串不一定比空格打头的字符串小
22.若有定义语句:
intn[]={5,4,3,2,1},i=4;,则下面对n数组元素的引用中错误的是()。
A)n[--i]B)n[2*2]C)n[n[0]]D)n[n[i]]
23.若有定义语句:
chars[10]="abcdefgh\0\0";,则strlen(s)的值是()。
A)11B)10C)9D)8
24.有定义语句:
chars[10];,若要从终端给s输入5个字符,错误的输入语句是()。
A)gets(&s[0]);B)scanf(“%s”,s+1);C)gets(s);D)scanf(“%s”,s[1]);
25.函数调用func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));语句中,func函数的实参个数是()
A)3B)4C)5D)8
26.若函数调用时的实参为普通变量时,以下关于函数形参和实参的叙述中正确的是()。
A)函数的实参和其对应的形参共占同一存储单元
B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元
D)函数的形参和实参分别占用不同的存储单元
27.以下叙述中正确的是()。
A)C程序是由一个或一个以上的函数组成
B)函数调用不可以作为一个独立的语句存在
C)C程序的基本构成单位是语句
D)C函数必须有形式参数
28.在C函数的定义和调用中,下面描述正确的是()。
A)函数的定义可以嵌套,函数的调用不可以嵌套
B)函数的定义不可以嵌套,函数的调用可以嵌套
C)函数的定义和调用都不可以嵌套
D)函数的定义和调用都可以嵌套
29.若在定义语句:
inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则不能正确执行的语句是()。
A)scanf("%d",&a);
B)scanf("%d%d%d",&a,&b,&c);
C)scanf("%d",p);
D)scanf("%d\n",p);
30.以下关于指针变量的说法中,错误的是()。
A)定义指针变量时,必须指定基类型
B)定义指针变量时,可以先不指定基类型
C)一个指针变量,只能指向同类型的变量
D)指针变量的值是地址
31.十进制正整数17的二进制表示形式为()。
A)10010001B)00010001C)11101110D)00001111
32.不属于十进制小数合法表示形式的是()。
A)0.123B)-12.35C).98D)42
33.用户定义的标识符命名规则不包括()。
A)标识符只能由英文字母、数字、下划线组成。
B)标识符必须以字母或下划线开头。
C)允许使用C关键字为标识符命名。
D)标识符包含字符长度一般会有最大长度限制,与编译器相关。
34.不能正确完成变量赋值的是()。
A)inta,b,c;
a=0;
b=0;
c=0;
B)inta,b,c;
a=b=c=0;
C)inta=0,b=0,c=0;
D)inta=0;b=0;c=0;
35.C语言中,1/2与1.0/2的结果分别是()。
A)0,0.5B)0.5,0C)0,0D)0.5,0.5
36:
程序
#include
voidmain()
{
intn=3;
printf("%d",n++);
printf("%d",++n);
}
的输出结果是()。
A)35B)45C)34D)44
37.已知
#include
第2行
voidmain()
{
doubler;
printf("Inputr:
");
scanf("%lf",&r);
printf("circumference=%f\n",2*PI*r);
printf("area=%f\n",PI*r*r);
}
上述程序的功能是计算圆的周长和面积,可以正确补充“第2行”的选项是()。
A)#definePI3.14159;B)#definePI3.14159
C)#definePI=3.14159D)#definePI=3.14159;
38.已知intm=5,n=2;,则输出结果与其他选项不同的是()。
A)printf("%f\n",m/(float)n);B)printf("%f\n",(float)m/n);
C)printf("%f\n",(float)(m/n));D)printf("%f\n",(float)m/(float)n);
39.不属于C语言字符常量的是()。
A)`a`B)`3`C)`ab`D)`\n`
40.已知charch;,则不能完成变量ch赋值的是()。
A)scanf(“%c”,&ch);B)ch=getchar();C)getchar(ch);D)ch=‘A’;
41.程序
#include
intmain()
{
inta=3;
intb=5;
intc=0;
if(a>b)
c=1;
c=2;
printf("%d\n",c);
return0;
}
的输出结果是()。
A)0B)1C)2D)3
42.数学表达式a>b>c,在C程序当中的正确表示是()。
A)a>b>cB)a>c&&b>cC)a>b||b>cD)a>b&&b>c
43.程序
#include
voidmain()
{
inti;
intn=5;
intsum=0;
for(i=1;i<=n;i++)
{
sum+=i;
}
printf("%d\n",sum);
}
的执行结果是()。
A)输出15B)输出10C)输出14D)输出13
44.程序
#include
voidmain()
{
inti,n=5;
for(i=1;i<=n;i++)
{
if(i%2==0)
break;
printf("%d",i);
}
}
的执行结果是()。
A)输出1B)输出12C)输出135D)输出1235
45.已知程序段:
#include
inta,b;
voidmain()
{
}
intx,y;
voidf()
{
}
下列说法正确的是:
()
A)a,b,x,y都不是全局变量,但作用域相同
B)a,b是全局变量,x,y是局部变量,作用域不相同
C)a,b是局部变量,x,y是全局变量,作用域不相同
D)a,b,x,y都是全局变量,但作用域不相同
二、填空题
1. C语言程序开发的四个步骤是:
编辑、_______、_______、执行。
2.若已知a=10,b=20,则表达式!
a
3.当a=0,b=2,c=4时,则表达式a+b>0&&b==c的值是_______。
4.C语言中的标识符只能由_______、_______、_______组成。
5.C语言中,逻辑“真”等价于___________。
6.有如下输入语句:
scanf(“%d,%d,%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是。
7.符号”a”和’a’的区别。
8.floatf=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是。
9.C语言中唯一的三元运算符是。
10.设有:
inta=3,b=4,c=5,则!
(a>b)&&!
c||1的值为。
11.表达整型变量a能被3整除但不被5整除的表达式是____________________________。
12.利用操作符++,语句序列p=p+1;f=p;的功能可以由一个语句完成,这个语句是____________。
13.一个函数由两部分组成,它们是和。
14.一个C源程序至少包含一个,即。
15.设inta=12;则表达式a/=a+a的值是。
16.表达式x=(a=3,6*a)和表达式x=a=3,6*a分别是表达式和表达式,两个表达式执行完的结果分别是和,x值分别是和。
17.在C语言中,实数有两种表示形式,即和。
18.在C语言中,运算符的优先级最小的是运算符。
三、判断题,正确的画,错误的画×
1.计算机硬件只能执行可执行程序。
()
2.C语言的一条语句只能写在一行上。
()
3.void可作为用户标识符。
()
4.相同字母的大小写在C中表示不同的含义。
()
5.C中所有运算符的结合性都是从左向右。
()
6.用一对单引号括起来的一个字符称为字符常量。
()
7.用一对双引号括起来的零个或多个字符序列称为字符串常量。
()
8.变量命名可以不遵循标识符的命名规则。
()
9.函数调用语句由函数调用加上分号组成。
()
10.关系运算符中,小于、小于等于、大于、大于等于的优先级低于等于、不等于的优先级。
()
11.逻辑运算中,逻辑非“!
”的优先级最高,逻辑与“&&”、逻辑或“||”的优先级相同。
()
12.单分支if语句可以嵌套使用,双分支if语句不可以嵌套使用。
()
13.C程序中,可以单独使用else子句。
()
14.while循环语句可以嵌套使用。
()
15.continue语句只能用于循环语句中。
()
16.每个数组元素都表示一个变量。
()
17.对被定义数组的全部元素赋初值时,数组长度可以省略。
()
18.void类型函数,不需要return语句进行返回值操作。
()
19.函数定义的先后顺序决定了其被调用的先后次序。
()
20.当局部变量有效时,同名的全局变量不起作用。
()
21.常量就是在程序中不能改变其值的量。
()
22.变量的值在程序执行过程中是可以改变的。
()
23.main()函数指定了C程序执行的起点,在C程序中可以出现多次。
()
24.C语言区分大小写。
()
25.注释/**/可以嵌套使用。
()
26.sizeof是C语言的关键字,不是函数名。
()
27.求余运算限定参与运算的两个操作数必须为整型。
()
28.int型操作数和float型操作数进行算术运算时,先统一转换为double型,再进行运算。
()
29.如果函数scanf()的格式控制字符串中存在除格式说明符以外的其他字符,那么这些字符必须在输入数据时由用户从键盘原样输入。
()
30.6个关系运算符<、>、<=、>=、==、!
=的优先级相同。
()
31.switch当中的default语句不是必须的。
()
32.逻辑运算符!
、||、&&的优先级相同。
()
33.仅由一个分号构成的语句,称为空语句。
()
34.函数既可以嵌套定义,又可以嵌套调用。
()
35.当函数定义出现在函数调用之前时,函数原型是可以省略的。
()
四、程序结果填空题
1.#include
intmain(void)
{
inta=10,b=3;
floatx=4.5,y=9;
printf("%f\n",(float)(a*b)/2);
printf("%d\n",(int)x%(int)y);
return0;
}
2.#include
intmain(void)
{
inta=20,b=80,x,y;
x=a++;
Y=--b;
printf("%d%d\n",x,y);
printf("%d%d\n",a,b);
return0;
}
3.若运行时输入100↙,写出运行结果。
#include
intmain(void)
{
inta;
scanf("%d",&a);
printf("%c",(a%2!
=0)?
'Y':
'N');
return0;
}
4.#include
intmain(void)
{
intx=26587,x1,r,sum=0;
x1=x;
while(x>0)
{
r=x%10;
sum+=r;
x/=10;
}
printf("Sumofthedigitsin%dis%d\n",x1,sum);
return0;
}
5.main()
{intx,y;
scanf("%2d%*2d%ld",&x,&y);
printf("%d\n",x+y);
}
执行时输入:
1234567
6.main()
{intx=4,y=0,z;
x*=3+2;
printf("%d",x);
x*=y=z=4;
printf("%d",x);
}
7.main()
{floatx;inti;
x=3.6;i=(int)x;
printf("x=%f,i=%d",x,i);
}
8.main()
{inta=2;
a%=4-1;printf("%d,",a);
a+=a*=a-=a*=3;printf("%d",a);
}
9.main()
{intx=02,y=3;
printf("x=%d,y=%%d",x,y);
}
10.main()
{charc1=’6’,c2=’0’;
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);
}
11.main()
{intx,y,z;
x=y=1;z=++x-1;
printf("%d,%d\n",x,z);
z+=y++;
printf("%d,%d\n",y,z);
}
五、编程题
1.输入三个整数,按照从小到大的顺序输出。
2.输入一个数字字符串,得到一个整数数值输出,如输入“123”--(用getchar()或gets()输入),输出123。
3.输入一个字符串(仅含有英文大小写字母和空格),编程统计其中含有的英文单词的数量,如输入“abcdefghi”,输出“3”,注意单词间的间隔符是空格,空格可能有多个。
4.编程实现字符串比较函数mystrcmp,不能使用string.h中声明的strcmp,函数原型如下:
intmystrcmp(char*s1,char*s2)
{
}
函数返回0代表2个字符串相等,返回非0代表不等。
5.编写程序实现如下功能:
利用一维数组,从键盘输入5个学生的成绩,输出这些学生成绩的平均分。
6.编写程序实现如下功能:
利用指针变量和间接寻址运算符,输出整型变量a(初始值为0)与字符型变量c(初始值为‘A’)的地址值和变量值。
7.编写一个void类型的字符串处理函数StrOp,该函数的形参是一个字符型的一维数组str,要求该函数能够把字符数组中的非26个英文字母的字符用’-’替换。
例如:
如果字符数组的值为“Hello%$Wo123rld&!
*”,则经过函数处理之后的值为“Hello--Wo---rld---”。
8.编写程序实现如下功能:
--用结构体类型描述一个员工(employee)的情况,成员包括工号(number),姓名(name,假设长度不超过30个字符,不包含空格字符)、工资(salary),工龄(time);
--从键盘输入一个员工的信息,然后将这个员工的工资增加100,工龄增加1,并输出这个员工的全部信息。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习题