C语言程序设计课后练习辅导全资料Word文档下载推荐.docx
- 文档编号:4519364
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:36
- 大小:26.81KB
C语言程序设计课后练习辅导全资料Word文档下载推荐.docx
《C语言程序设计课后练习辅导全资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课后练习辅导全资料Word文档下载推荐.docx(36页珍藏版)》请在冰点文库上搜索。
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头。
D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头。
B
已知c是字符型变量,以下不正确的赋值语句是
()。
A.c=”a”
B.c=’a’
C.c=’\141’
D.c=’\x61’+3
C语言中对于嵌套if语句规定else总是与()配对?
A.第一个if
B.其之前最近的if
C.缩进位值相同的if
D.其之前最近的不带else的if语句
下面的for循环最多可执行()次。
for(x=0;
y=0;
(y!
=99)&
&
(x<4);
x++);
A.4次
B.5次
C.99次
D.0次
C语言中各种基本数据类型的存储空间长度排列为()。
A.char≤long≤int≤float≤double
B.double≤float≤long≤int≤char
C.char≤int≤long≤float≤double
D.float≤int≤long≤char≤double
下列说法中正确的是()。
A.在switch语句中一定要使用break语句
B.在switch语句中不一定要使用break语句
C.break语句是switch语句的一部分
D.break只能用于switch语句中
以下不符合C语言语法的赋值表达式是()。
A.d=9+e,e++,d+9
B.k=i==j
C.n1+=n2+3
D.a=b+c=a+7
下列判断char类型变量C1是为数字的最简单且正确的表达式()。
A.'
0'
<=C1<='
9'
B.(C1>='
)&
(C1<='
)
C.(C1>=0)&
(C1<=9)
D.('
<=C1)&
('
<=C1)
字符串”\\\’abcd\123\xAB\t”的长度为()。
A.8
B.17
C.-9
D.10
执行以下程序段后,变量a,b,c的值为()。
intx=11,y=10,a,b,c;
a=(--x==y++)?
--x:
++y;
b=x++;
c=y;
A.a=10,b=10,c=9
B.a=9,b=9,c=12
C.a=9,b=9,c=11
D.a=1,b=9,c=11
以下程序的输出结果是用()表示。
main()
{intk=17;
printf("
%d,%o,%x\n"
,k,k,k);
A.17,021,0x11
B.17,17,17
C.17,0x11,021
D.17,21,11
若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;
b<=c;
b++)s=s+1;
则与上述程序段功能等价的赋值语句是()。
A.s=a+b;
B.s=a+c;
C.s=s+c;
D.s=b+c;
有如下程序
voidf(intx,inty)
{intt;
if(x<
y){t=x;
x=y;
y=t;
}
{inta=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("
%d,%d,%d\n"
a,b,c);
执行后输出结果是()。
A.3,4,5
B.5,3,4
C.5,4,3
D.4,3,5
有以下程序
{chars[]="
\n123\\"
;
%d,%d\n"
strlen(s),sizeof(s));
A.赋初值的字符串有错
B.6,7
C.5,6
D.6,6
以下程序的输出结果是()。
{charch[3][5]={“AAAA”,”BBB”,”CC”};
printf(“\”%s\”\n”,ch[1]);
A.“AAAA”
B.“BBB”
C.“BBBCC”
D.“CC”
以下叙述中正确的是()。
A.局部变量说明为static存储数,其生存期将得到延长
B.全局变量说明为static存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则()。
A.称为函数的直接递归调用
B.称为函数的间接递归调用
C.称为函数的循环调用
D.C语言中不允许这样的递归调用
C语言中数组下标的下限是()。
A.1
B.0
C.视说明语句而定
D.无固定下限
若有定义inta[2][2]={0};
,则以下描述正确的是()。
A.只有a[0][0]的值为0
B.数组每个元素的值都为0
C.只有a[0][1]的值为0
D.以上都不正确
下面函数f的定义:
f(inta){printf("
%d"
a);
函数f的返回类型()。
A.同参数a的类型相同
B.是void类型
C.没有返回值
D.无法确定
以下正确的说法是()。
A.定义函数时,形参的类型说明可以放在函数体
B.return后边的值不能为表达式
C.如果函数值的类型与返回值类型不一致,以函数值类型为准
D.如果形参与实参类型不一致,以实参类型为准
C语言标准库函数“strcat(strcpy(STR1,STR2),STR3)”的功能是()。
A.将串STR1复制到串STR2中后再连接至串STR3之后
B.将串STR1连接至STR2之后再复制至串STR3之后
C.将串STR2复制到串STR1串后再将串STR3连接到串STR1之后
D.将串STR2连接到串STR1之后再将串STR1复制到串STR3串
#definep(v,format)printf(“v=%format”,v)
#defines(x)3.5*x*x
main(){inta=1,b=2;
floats1;
s1=s(a+b);
p(s1,f);
A.s1=31.5
B.v=31.500000ormat
C.v=7.500000ormat
D.s1=7.5
若有说明:
intn=2,*p=&
n,*q=p;
,则以下非法的赋值语句是()。
A.p=q;
B.*p=*q;
C.n=*q;
D.p=n;
已定义以下函数
fun(int*p)
{return*p:
}该函数的返回值是()。
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值
{char*s[]={"
one"
"
two"
three"
},*p;
p=s[1];
%c,%s\n"
*(p+1),s[0]);
A.n,two
B.t,one
C.w,one
D.o,two
若有定义:
int*p[3];
则以下叙述中正确的是()。
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
fun(char*p2,char*p1)
{while((*p2=*p1)!
=‘\0’){p1++;
p2++;
}}函数的功能是()。
A.将p1所指字符串复制到p2所指存空间
B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较
D.检查p1和p2两个指针所指字符串中是否有‘\0’
有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&
a[3],b;
b=p[5];
b中的值是()。
A.5
C.8
D.9
运行下列程序后的输出结果是()。
main(){charstr[][10]={"
China"
Beijing"
},*p=*str;
%s\n"
p+10);
A.China
B.Beijing
C.ng
D.ing
设有说明:
uniondata{
inti;
floatf;
struct{
intx;
chary;
}s;
doubled;
}a;
在16位微机环境下,int类型的整数占用两个字节,则变量a在存中所占字节数为()。
A.8
B.17
C.9
D.15
下面对结构数据类型的叙述中,()是错的。
A.结构变量可以在说明结构类型后定义,也可在说明结构时定义
B.结构可由若干个成员组成,各成员的数据类型可以不同
C.定义一个结构类型后,编译程序要为结构的各成员分配存储空间
D.结构变量的各成员可通过结构变量名和指向结构变量的指针引用
在C语言中,文件若按数据的组织形式分类可分为()。
A.字符文件和数字文件
B.ASCII文件和二进制文件
C.顺序文件和随机文件
D.以上均不对
若有以下说明:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为6的表达式是()。
A.*p+6
B.*(p+6)
C.*p+=5
D.p+5
C语言程序由()组成。
A.子程序
B.过程
C.函数
D.主程序与子程序
下列有四个用户定义的C语言标识符,只有一个是正确的,正确的是()。
A.case
B.-ac
C._53
D.ab-c
以下正确的描述是()。
A.continue语句的作用是结束整个循环的执行
B.只能在循环体和switch语句体使用break语句
C.在循环体使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
若以下选项中的变量已正确定义,则正确的赋值语句是()。
A.x1=26.8%3
B.1+2=x2
C.x3=0x12
D.x4=1+2=3
若变量都已正确说明,则以下程序段()。
a=2;
b=3;
printf(a>b?
”***a=%d”:
”###b=%d”,a,b);
A.没有正确的输出格式控制
B.输出为:
***a=2
C.输出为:
###b=2
D.输出为:
***a=2###b=2
若变量都已正确说明,则以下程序段输出为()。
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=10
B.a=10b=30c=10
C.a=50b=30c=10
D.a=50b=30c=50
以下程序输出的结果是()。
#include<stdio.h>
{inti=0,j=0,a=6;
if((++i>0)||(++j>0))a++;
printf(“i=%d,j=%d,a=%d\n”,i,j,a);
A.i=0,j=0,a=6
B.i=1,j=1,a=7
C.i=1,j=0,a=7
D.i=0,j=1,a=7
A.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
B.在C程序中,main()函数必须位于程序的最前面。
C.C语言本身没有输入输出语句。
D.C程序的基本单位是语句。
a的初值为10,执行表达式语句a+=a-=a*a;
后,a的值为()。
A.-80
B.-180
C.-90
D.-100
在C语言中,设a和x都为整型变量,执行赋值表达式x=(a=3,6*3)后,x的值为()。
A.54
B.3
C.18
D.21
设x和y均为int型变量,则执行下面的循环后,y值为()。
for(y=1,x=1;
y<=50;
y++)
{if(x>=10)break;
if(x%2==1){x+=4;
continue;
}}
A.2
B.4
C.6
D.8
设有如下程序段,其结果是()。
inta=100,b=100;
for(;
a!
=b;
++a,b++)
printf(“---\n”);
A.输出---
B.输出100行---
C.死循环
D.该for循环一次也不执行
整型变量a的取值围为闭区间[-1,10]或开区间(20,40),则正确表示的逻辑表达式为()。
A.–1<=a<=10|20<a<40
B.(–1<=a&
a<=10)|(20<a&
a<40)
C.(–1<=a&
a<=10)||(20<a&
D.–1<=a<=10||20<a<40
若有代数表达式(5ae)/(bc),则不正确的C语言表达式()。
A.a/b/c*e*5
B.5*a*e/b/c
C.5*a*e/b*c
D.a*e/c/b*5
若int类型占两个字节,则以下语句输出为()。
intk=-1;
%d,u%\n"
k,k);
A.-1,-1
B.-1,65536
C.-1,32768
D.-1,65535
假设a为float类型数,i为整型变量,则下述语句能将a中的数值保留小数点1位,即四舍五入的是()。
A.a=(a*10+0.5)/100.0
B.i=a*10+0.5,a=i/10.0
C.a=int(a*10)/10.0
D.a=(a/100+0.5)*100.0
设x=3,y=-4,z=6,下面表达式的结果是()。
!
(x>y)+(y!
=z)||(x+y)&
(y-z)
A.0
B.1
C.-1
D.6
在C语言中,逻辑值“真”用()表示?
A.true
B.正数
C.非0整数
D.非0的数
已知ch是字符型变量,下面正确的赋值语句是()。
A.ch=‘123’;
B.ch=‘\xff’;
C.ch=‘\08’
D.ch=“\”
若有以下说明和语句,则输出结果是()。
charsp[]="
\x69\082\n"
strlen(sp));
A.3
B.5
C.1
D.字符串中有非法字符,输出值不定
若有变量说明:
chars,s1[20];
执行语句:
s="
student"
s1=s;
正确的叙述是()。
A.二个语句都不正确
B.s所指向的字符串和s1的值都是"
C.第一个语句正确,而第二个语句不正确
D.第二个语句正确,而第一个语句不正确
变量的有效围与其定义位置有关,(),其作用域在整个源程序文件中都有效。
A.在第一个函数中定义的变量
B.在定义第一个函数之前所定义的变量
C.在主函数中定义的变量
D.在函数中定义的静态变量
若程序中定义了以下函数
doublemyadd(doublea,doubleB)
{return(a+B);
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。
A.doublemyadd(doublea,B);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doubleA);
D.doublemyadd(doublex,doubley);
voidf(intv,intw)
t=v;
v=w;
w=t;
{intx=1,y=3,z=2;
if(x>
y)f(x,y);
elseif(y>
z)f(y,z);
elsef(x,z);
printf(“%d,%d,%d\n”,x,y,z);
A.1,2,3
B.3,1,2
C.1,3,2
D.2,3,1
若有宏定义与变量说明如下:
#defineX5
#defineYX+1
#defineZY*X/2
inta;
a=Y;
则执行以下printf语句后输出的结果是()。
Printf("
%d%d\n"
Z,--a);
A.75
B.126
C.125
D.76
数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。
A.该数组的长度
B.该数组的元素个数
C.该数组中各元素的值
D.该数组的首地址
执行完下面的程序段后,屏幕显示的容为()。
{inta=2,i;
for(i=0;
i<
3;
i++)printf("
f(a));
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
A.777
B.777
C.789
D.789
以下描述中,正确的是()。
A.调用函数时,实参可以是表达式
B.调用函数时,将为形参分配存单元
C.调用函数时,实参与形参的原型必须一致
D.调用函数时,实参与形参可以用存单元
在C语言中,引用数组元素时,其下标的数据类型允许是()。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
有语句charstr1[10],str2[10]={"
books"
};
则能将字符串books赋给数组str1的正确语句是()。
A.str1={"
Books"
B.strcpy(str1,str2);
C.str1=str2;
D.strcpy(str2,str1);
以下函数调用中有()个实参。
expd((a1,a2,a3),(a4,a5),a7,a8)
A.4个
B.3个
C.8个
D.5个
C语言的编译系统对宏命令是()时候处理的。
A.在程序运行
B.在程序连接时
C.和源程序其它C语言同时进行编译时
D.对源程序其它成份正式编译之前进行处理的
设有定义:
inta,*pA=&
a;
以下scanf语句中能正确为变量a读入数据的是()。
A.scanf(“%d”,pA);
B.scanf(“%d”,A);
C.scanf(“%d”,&
pA);
D.scanf(“%d”,*pA);
若有语句int*point,a=4;
和point=&
a;
下面均代表地址的一组选项是()。
A.a,point,*&
a
B.&
*a,&
a,*point
C.*&
point,*point,&
D.&
a,&
*point,piont
{char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));
A.2
B.3
C.4
D.5
C语言结构体类型变量在程序执行期间()。
A.所有成员一直驻留在存中
B.只有一个成员驻留在存中
C.部分成员驻留在存中
D.没有成员驻留在存中
以下对C语言中共用体类型数据的叙述()的叙述是正确的。
A.可以对共
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课后 练习 辅导 资料
![提示](https://static.bingdoc.com/images/bang_tan.gif)