C语言程序设计复习习题.docx
- 文档编号:10005028
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:78
- 大小:91.16KB
C语言程序设计复习习题.docx
《C语言程序设计复习习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习习题.docx(78页珍藏版)》请在冰豆网上搜索。
C语言程序设计复习习题
一、判断题
使用循环的嵌套结构时,外层循环应"完全包含"内层循环,不能发生交叉.(对)
一个函数由两部分组成:
函数首部和函数体.(对)
语句printf("%f%%",1.0/3);输出为0.333333.(错)
在for循环中,循环变量只能是整型或字符型的.(错)
C程序中以#include和#define开始的程序行均不是C语句.(对)
while循环结构的特点是"先判断后执行",如果表达式的值一开始就为"假",循环体一次也不执行.(对)
当数组被说明为静态(static)类别时,无论是否显式给出初值,数组元素都将有确定的值.(对)
宏不存在类型问题,宏名无类型,它的参数也无类型.(对)
进行宏定义时,宏名必须使用大写字母表示.(错)
若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真".(对)
移动指针时,不允许加上或减去一个非整数.()
已知:
intt=0;while(t=1){...}该循环一次也不执行.(错)
在for循环中,循环变量只能增加,不能减少.(错)
a=(b=4)+(c=6)是一个合法的赋值表达式.(对)
for(;;)语句相当于while
(1)语句.(对)
main函数由用户定义,并可以被其他函数调用.(错)
用typedef可以声明各种类型名,也有可以用来定义变量.()
在C语言中允许函数递归调用.(对)
在循环体内使用break语句或continue语句的作用相同.(错)
指针不允许进行乘、除运算.()
break语句用于结束整个循环,不再继续判断执行循环的条件是否成立.(对)
C语言规定,实参变量对形参变量的数据传递是单向的"值传递".(对)
参加位运算的数据可以是任何类型的数据.(错)
程序段:
if(strl>str2)printf("%s",strl);elseprintf("%s",str2);表示输出较大字符串.(错)
可以将一个结构体变量作为一个整体进行输入和输出.()
利用scanf函数可以输入带空格的字符串.(错)
带参数的宏中的形参要定义其类型.(错)
共同体变量所占的内存长度等于最长的成员的长度.()
设有定义int*p[4];其中的p是指向一维数组的指针变量.()
数据输出时,凡是打印出来的数字都是准确的.(错)
在switch语句中,无论如何default后面的语句都要执行一次.(错)
在一个文件中定义的全局变量的作用域为本程序的全部范围.()
do-while循环中,根据情况可以省略while.(错)
printf("%-6d",a);中的"-"代表输出一个负数.(错)
如果对数组不赋初值,则数组元素取随机值.(错)
若有"inti=3;",则"printf("%d",-i++);"输出的值为-4.(错)
数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址.()
数组名的规定与变量名不相同.()
数组元素的值可以使用赋值语句或输入函数进行赋值,但占用运行时间.(对)
在循环语句中,for循环是当型循环.(对)
在循环语句中,while语句与do-while语句完全等价.(错)
#include命令可以包含一个有函数定义的C语言源程序文件.(对)
C语言提供"位运算"功能,因此C语言属于低级语言.(错)
C语言中所有运算符的结合方向是"自左向右"的.(对)
在对一维数组初始化时,数组的长度可以省略,系统会自动按初值的个数分配存储空间.(对)
continue作用为终止循环而执行循环后面的语句.(对)
C语言中可以用字符串常量来初始化字符数组.(错)
while循环最少执行1次.(错)
当形参是变量时,实参与它所对应的形参占用不同的存储单元.(对)
共用体变量所占的内存长度等于最长的成员的长度.()
在C语言中,形式参数的作用域只是局限于所在函数.(对)
在TurboC中,此定义和语句是合法的:
enumaa{a=5,b,c}bb;bb=(enumaa)5;()
在一个文件中定义的全局变量的作用域为本程序的全部范围.()
C语言的函数在形式上必须要有参数.()
for语句中的表达式1,表达式2,表达式3均可以省略,并且分号也可以省略.(错)
函数调用语句func((expl,exp2),(exp3,exp4,exp5));含有实参的个数为5.(错)
函数值类型与程序中返回值类型出现矛盾时,以函数值类型为准.(对)
如果要保留某位只需和0进行按位或运算.()
如果将一个位清零,就让这位和0进行按位或(|)运算,即可达到清零目的.()
在嵌套的if语句中,else应与第一个if语句配对.(错)
整型常量-012表示一个负的八进制数12,也就是十进制数-10.(错)
break语句不能用于循环语句和switch语句之外的任何其他语句中.(对)
C语言对文件的处理方法有缓冲文件系统和非缓冲文件系统.(对)
C语言中文件的存取方式可以是顺序存取,也可以是随机存取.(对)
定义二维数组时,若对全部元素都赋初值,则第一维的长度不能省,但第二维的长度可以不指定.()
宏替换只不过是字符替代而已.(错)
在C语言中,数组元素的下标是整型常量或整型变量,并且下标默认从1开始.(错)
调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指变量的值.()
调用函数时,实参与形参的类型必须一致.(错)
定义二维数组时,若对全部元素都赋初值,则第一维的长度不能省,但第二维的长度可以不指定.()
分号是语句的必要组成部分,所以函数首部的后面和编译预处理的后面都得加分号.(错)
宏替换占运行时间.(错)
嵌套的循环提倡使用缩进式书写格式,以增加程序的可读性.(对)
在switch语句中,"case常量表达式:
"只起语句标号作用.(对)
在编译时,对数据类型和变量都分配空间.(对)
C语言中同一数组中的每一个数组元素必须属于同一数据类型.(对)
多分支选择结构只能通过switch语句来实现.(错)
do-while语句中的语句可以一次也不执行.(错)
宏定义不是C语句.(对)
下面的输入语句是否合理:
scanf("%7.2f",&a).(错)
一个函数返回值的类型是由return语句中的表达式类型决定.()
若有以下的数组定义:
charx[]="12",y[]={'1','2'};则x数组和y数组长度相同.()
一个C程序可以由若干个源程序文件(分别进行编译的文件模块)组成.(对)
在C语言的函数中,最好使用全局变量.(错)
在初始化数组时,若数组长度小于初值的个数,则会产生编译错误.(对)
在嵌套的if语句中,else应与它上面的最近的且未曾配对的if语句配对.(对)
字符串"g\ti\b\bk\101"的长度是13.(错)
在C语言中以源文件而不是以函数为单位进行编译.(错)
在if语句中,条件判断表达式可以不用括号括起来.(错)
在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量.()
二、选择题
有以下函数
intfun(char*s)
{char*t=s;
while(*t)++t;
return(t-s);
}
该函数的功能是(A).
A.比较两个字符串的大小B.计算s所指字符串占用内存字节的个数
C.计算s所指字符串的长度D.将s所指字符串复制到字符串t中
以下程序的输出结果是(B).
intf(void)
{staticinti=0;
ints=1;
s+=i;i++;
returns;
}
intmain(void)
{inti,a=0;
for(i=0;i<5;i++)a+=f();
printf("%d\n",a);
return0;
}
A.20B.24C.25D.15
有下面程序段
#include"string.h"
intmain(void)
{chara[3][20]={{"china"},{"isa"},{"bigcountry!
"}};
chark[100]={0},*p=k;
inti;
for(i=0;i<3;i++)
{p=strcat(p,a[i]);}
i=strlen(p);
printf("%d\n",i);
return0;
}
则程序段的输出结果是().
A.18B.19C.20D.21
有以下程序
#include"string.h"
intmain(void)
{charp[]={'a','b','c'},q[10]={'a','b','c'};
printf("%d%d\n",strlen(p),strlen(q));
return0;
}
以下叙述中正确的是().
A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B.由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C.由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D.由于p和q数组中都没有字符串结束符,故长度都不能确定
有以下程序
#include"string.h"
intmain(void)
{charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcpy(p+strlen(q),r);strcat(p,q);
printf("%d%d\n",sizeof(p),strlen(p));
return0;
}
程序运行后的输出结果是().
A.209B.99C.2011D.1111
下列二维数组初始化语句中,正确且与语句floata[][3]={0,3,8,0,9};等价的是().
A.floata[2][]={{0,3,8},{0,9}};B.floata[][3]={0,3,8,0,9,0};
C.floata[][3]={{0,3},{8,0},{9,0}};D.floata[2][]={{0,3,8},{0,9,0}};
下面程序的输出结果是().
intmain(void)
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*p+9);
return0;
}
A.0B.1C.10D.9
下面程序的运行结果是().
intmain(void)
{staticchara[]="Language",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
return0;
}
A.gaeB.gaC.LanguageD.有语法错
以下数组定义中不正确的是().
A.inta[2][3];B.intb[][3]={0,1,2,3,4,5};
C.intc[100][100]={0};D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
以下程序段的输出结果是().
inta=1234;
printf("%2d\n",a);
A.12B.34C.1234D.提示出错、无结果
以下程序输出结果是()
intmain(void)
{inta=5,b=4;
printf("%d\n",a>b?
a+b:
a-b);
return0;
}
A.9B.1C.10D.无法确定
下面的表达式while(!
x)中的表达式!
x与下面条件()等价.
A.x==0B.x==1C.x==0||x==1D.x!
=0
有如下程序:
intmain(void)
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
return0;
}
该程序的输出结果是().
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
执行下列程序时输入:
123<空格>456<空格>789<回车>输出结果是().
intmain(void)
{chars[100];intc,i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
return0;
}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
以下程序的输出结果是().
intmain(void)
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
return0;
}
A.31B.13C.10D.20
有以下程序
voidfun(char**p)
{++p;printf("%s\n",*p);}
intmain(void)
{char*a[]={"Morning","Afternoon","Evening","Night"};
fun(a);return0;
}
程序的运行结果是().
A.AfternoonB.fternoonC.MorningD.orning
有以下程序
voidfun(int*a,intn)
{intt,i,j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)