C语言期末复习题
更新时间:2024-05-05 09:04:01 阅读量: 综合文库 文档下载
C语言期末复习题
一、单项选择题
1.一个C程序的执行是从
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下面四个选项中,均是不合法的用户标识符的选项的是 A) A p_o do B)float lao _A C) b-a goto int D) _123 temp INT 3.判断字符型变量c1是否为数字字符的正确表达式为 A)?0?<=c1<=?9? B)(c1>=0)&&(c1<=9) C) (?0?>=c1)||(?9?<=c1) D) (c1>=?0?)&&(c1<=?9?) 4.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 A)2.500000 B)2.750000 C)3.500000 D)0.000000 5.在C语言中,要求运算数必须是整型的运算符是 A)/ B)++ C)!= D)%
6. 若有定义:
double a[] = { 2.1,3.6,9.5}; double b = 6.0;
则下列错误的赋值语句是:
A) b = a[2]; B) b = a + a[2]; C) a[1] = b; D) b = a[0] + 7;
7.若定义x为双精度型变量,则能正确输入x值的语句是 。 A)scanf(“%f”,x); B)scanf(“%f”,&x); C)scanf(“%lf”,&x); D)scanf(“%lf”, x); 8.以下不正确的说法是 。
A)实参可以是常量,变量或表达式 B)形参可以是常量,变量或表达式
C)实参可以为任意类型 D)如果形参和实参的类型不一致,以形参类型为准 9.下面程序段的运行结果是 。
char *s=”Nanjing” ; s+=3 ; printf(“%s”,s); A)jing B)字符j C)字符j的地址 D)不确定 10.下面程序段 int k=2;
while (k!=0) {printf(“%d”,k);k--;}
第1页/ 共14页
则下面描述中正确的是 。
A)while循环执行2次 B)循环是无限循环
C)循环题语句一次也不执行 D)循环体语句执行一次 11.若有说明:int *p,m=5,n;以下程序段正确的是 。 A)p=&n ; B)p = &n ; scanf(“%d”,&p); scanf(“%d”,*p); C)scanf(“%d”,&n); D)p = &n ; *p=n ; *p = m ;
12.若要对a进行自增运算,则a应具有下面说明 。 A)int a[3][2]; B)char *a[ ]={“12”,”ab”}; C)char (*a) [3] D)int b[10], *a=b;
13.若以下定义和赋值语句:int s[2][3]={0},(*p)[3];p=s;则对数组s的第i行第j列(假设i、j已经正确说明并赋值)元素的合法引用为: A)*(*(p+i)+j) B)*(p[i])+j C)(p+i)+j D)(*p+i)[j] 14.下面程序的运行结果是 。
#iunclude
} cnum[2]={1,3,2,7} ;
printf(“%d\\n”,cnum[0].y/cnum[0].x*cnum[1].x) ; } A)0 B)1 C)2 D)6 15.函数rewind的作用是 。
A)使位置指针重新返回文件的开头 B)将位置指针指向文件中所要求的特定位置 C)使位置指针指向文件的末尾 D)使位置指针自动移至下一个字符位置
16.
二、基础知识填空
1.在C语言中,没有专门的输入输出的语句,其输入输出都是用函数来完成的,格式化输入操作是由库函数 [1] 完成的。
2.三种基本程序结构是循环结构、选择结构和 [2] 。
a2?b23.数学表达式的C语言表达式是 [3]
x?y4. 设有数组定义: char array []=\则数组 array所占的内存空间为 [4] 5.x,y,z是整型变量,写出x,y,z三个变量中至少有两个为正数的逻辑表达式是: [5] 。
6.用continue语句只能用在循环语句的循环体内,其作用是: [6] 。 7.若有定义语句:int a[4]={1,2,3,4},*p;p=a;则++(*p)的值是 [7] 。 8.若有#define ADD(x) x+x
第2页/ 共14页
int m=1,n=2,k=3,sum ; sum = ADD(m+n)*k ; 则sum的值为 [8] 9.若有定义:
struct num{ int a ;
int b ; float f ;
} n = {1,3,5.0} ;
struct num *pn = &n ;
则表达式(*pn).a+pn->f的值是 [9] 。
10.若执行fopen函数时发生错误,则函数的返回值是 [10] 。
三、程序阅读题
1.输入100,200回车后,下面程序执行结果是 #include
void swap(int *,int *); int main() {
int a, b, *pa=&a, *pb=&b; scanf(“%d,%d”,&a,&b); swap (pa,pb);
printf(“a=%d,b=%d\\n”,a,b); return 0; }
void swap (int *p1,int *p2) {
int *p; p=p1; p1=p2; p2=p; }
2.若运行以下程序时,输入2473↙,则程序的运行结果是 。 #include
int c;
while ((c=getchar( )) !=?\\n?) switch (c-?2?)
{
case 0 :
case 1 : putchar (c+4) ;
case 2 : putchar (c+4) ; break ; case 3 : putchar (c+3) ;
default : putchar (c+2) ; break ; }
printf(“\\n”); return 0; }
第3页/ 共14页
3.输入6,下面程序的执行结果是: #include
unsigned long int fact (unsigned int ); int main()
{ unsigned int n,fac; scanf(\ fac=fact (n);
printf(\ return 0; }
unsigned long int fact (unsigned int n) {
unsigned int result; if(n==0||n==1) result=1; else
result=n*fact(n-1); return result; }
4.下面程序的输出结果是 。 #include
{ int i,a=5,sum; for(i=0;i<3;i++) sum=fun(a);
printf(\ return 0; }
int fun(int a) {
int b=0;
static int c=3; b++; c++;
return(a+b+c); }
5.下面程序运行的结果是 #include
void copy_string(char *,char *); int main() {
char a[]=\ char b[]=\ copy_string(a,b);
第4页/ 共14页
printf(\return 0 ; }
void copy_string(char *from,char *to) {
for(;*from!='\\0';from++,to++) *to=*from; *to='\\0'; }
6.下面程序执行的结果是 #include
void inv(int [], int ); int main()
{ int i,a[10]={3,7,9,11,0,6,7,5,4,2}; inv(a,10);
for(i=0;i<10;i++)
printf(\
printf(\return 0; }
void inv(int x[], int n) { int t,i,j,m=(n-1)/2; i=0; j=n-1;
for(;i<=m;i++,j--)
{ t=x[i]; x[i]=x[j]; x[j]=t; } }
7.写出下面程序的运行结果 。 #include
char name[20] ; int age ;
} person[ ] = { “liming”, 22, “wanghua”, 21,”zhangping”,20 } ; int main ( )
{ int old = 0 ;
struct man *p=person, *q ; for ( ; p<=&person[2]; p++)
if (old
8.输入9,5回车后,下面程序执行结果是 #include
void swap(int *,int *); int main() {
第5页/ 共14页
int a, b, *pa=&a, *pb=&b; scanf(“%d,%d”,&a,&b); swap (pa,pb);
printf(“a=%d,b=%d\\n”,a,b); return 0;
}
void swap (int *p1,int *p2) {
int p; p=*p1; *p1=*p2; *p2=p;
printf(“*p1=%d,*p2=%d\\n”,*p1,*p2); }
9.以下程序输出结果是 。 #include
int x=1,y=0,a=0,b=0; switch(x) {
case 1:switch (y)
{
case 0 : a++ ; break ; case 1 : b++ ; break ; }
case 2:a++; b++; break; case 3:a++; b++;
}
printf(“a=%d,b=%d”,a,b); return 0; }
10.输入6,下面程序的执行结果是: #include
unsigned int fact (unsigned int ); int main()
{ unsigned int n,fac; scanf(\ fac=fact (n);
printf(\ return 0; }
unsigned int fact (unsigned int n) {
unsigned int result; if(n==1||n==2) result=1; else
第6页/ 共14页
result=fact(n-1)+fact (n-2); return result; }
11.下面程序的输出结果是 。 #include
{ int x=7,y=3,s,j; for(j=0;j<3;j++) {
s=fun(x,y);
printf(\ }
return 0; }
int fun(int a,int b) {
static int n=1,i=2; i=n+1; n=i+a-b; return(n); }
12. 当运行以下程序时,从键盘输入:AhaMA□Aha
char s[80],c='a'; int i=0;
scanf(\
while(s[i]!='\\0') {
if(s[i]==c) s[i]=s[i]-32; else if(s[i]==c-32) s[i]=s[i]+32; i++; }
puts(s); return 0; }
13.下面程序执行的结果是 #include
void inv(int *, int ); int main()
{ int i,a[10]={3,7,9,11,0,6,7,5,4,2}; inv(a,10);
第7页/ 共14页
for(i=0;i<10;i++)
printf(\
printf(\return 0; }
void inv(int *x, int n)
{ int t,*p,*i,*j,m=(n-1)/2; i=x; j=x+n-1; p=x+m; for(;i<=p;i++,j--)
{ t=*i; *i=*j; *j=t; } }
14.下面函数的功能是 int strcmp(char *s,char *t) {
while (*s && *t && (*s == *t)) {
s++; t++; }
return *s - *t; }
四、程序填空题
1.以下程序输出a,b,c三个整数,并按从小到大排序,请完善程序。 #include
{ int a,b,c,t;
scanf(\ if( [1] ) {
t=a; a=b; b=t; }
if(a>c) {
[2] ; a=c; c=t; }
if(b>c) {
t=b;
[3] ; c=t; }
printf(\return 0;
第8页/ 共14页
}
2.下面程序是实现两个M?N矩阵相加,请完善程序。
#include
void add(int x[][N],int y[][N],int z[][N]); int main()
{ int i,j,a[M][N],b[M][N],c[M][N]; for(i=0;i scanf(\ add( [4] ); for(i=0;i for(j=0;j printf(\ printf(\ } return 0; } void tran(int x[][N],int y[][N],int z[][N]) { int i,j; for(i=0;i z[i][j]= [5] ; } 3.下面函数的功能是将两个字符串s1和s2连接起来,请填空使程序完整。 void conj(char *s1,char *s2) { char *p=s1 ; while (*s1) [6] ; while (*s2) { *s1= [7] ; s1++,s2++; } *s1=?\\0? ; } 4.函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据赋0到m-1的值。 #include #include struct aa *next; } NODE; NODE *Creatlink(int n, int m) { NODE *h=NULL, *p, *s; int i; 第9页/ 共14页 /**********found***********/ p=(NODE* )malloc(sizeof(NODE)); h=p; p->next=NULL; for(i=1; i<=n; i++) { s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%m; /*rand()为随机函数*/ s->next=p->next; [8] ; p=p->next; } /**********found***********/ return h; } outlink(NODE *h) { NODE *p; p=h->next; while( [9] ) { printf(\ p=p->next; } printf(\} int main() { NODE *head; head=Creatlink(8,22); outlink(head); return 0; } 5.以下程序输出x,y,z三个数中的最小值,请完善程序。 #include int main ( ) { int x,y,z,min ; scanf(“%d %d %d”,&x,&y,&z); if(x>y) [10] ; else min=x; if( [11] ) min=z; printf (“%d”,min); return 0; } 6.下面程序是实现M?N矩阵的转置,请完善程序。 #include 第10页/ 共14页
正在阅读:
C语言期末复习题05-05
中国向体育强国转型的思考03-26
体育管理学05-22
深圳市宝安区2012年中考语文二模试题07-28
考察指导工作08-22
潘小明(特级教师)乘法分配律课堂实录.06-08
南京市区老年人健康状况及卫生需求研究07-18
管理学讲议5:决策06-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 复习题
- 期末
- 语言
- 卫生监督员试题 - 卫生监督基础
- HSE管理措施 - 图文
- 论学习数学史的意义与作用
- 海南黄花梨与越南黄花梨对比(图)
- 2014年11月 机考试卷,健康管理师
- 当代文学
- 2007年全省教师高级专业技术资格评审通过人员名单
- 课程设计报告
- 数学文卷·2015届浙江省台州中学高三上学期第一次统练(2014.09)
- 土木工程建筑工程方向毕业论文计算书附加全套图
- 安全应知应会题
- 2018年中国石化工程行业分析报告-市场深度调研与发展前景研究(目
- SAP - 物料分类账的应用 - 图文
- 基于Zigbee技术的智能家居控制系统设计—课程设计论文
- 行业发展趋势深度分析
- 分析习题
- 给水系统中V型滤池的过滤机理与工艺设计
- 企业融资方式的比较与选择
- 高频电路-问答题
- 围棋创新项目 - 图文