c语言程序设计模拟题
更新时间:2023-07-25 13:49:01 阅读量: 实用文档 文档下载
《C语言程序设计》模拟题(补)
一. 单项选择题
1.有char c= 1 ,下面说法中正确的是( )。
A. 语句putchar(c+2);的输出结果为51 B. 语句putchar(“%d”,c+2);的输出结果为3 C. 语句putchar(“%c”,c+2);的输出结果为51 D. 语句putchar(“%c”,c+2);的输出结果为3
2.设c1,c2均是char型变量,则下面不正确的函数调用为(A. scanf(”c1=%cc2=%c”,&c1,&c2); B. getchar(); C. putchar(c2); D. putchar(c1,c2);
3.为了表示关系x>=y>=z,下面C语言表达式中正确的是( A. (x>=y)&&(y>=z) B. (x>=y)and(y>=z) C. (x>=y>=z) D. (x>=y)&(y>=z)
4.设x,y,z,t为int型变量,则执行以下语句后,t的值为( x=y=z=1;
t=++x||++y&&++z; A. 不定值 B. 2 C. 1 D. 0
5.对if语句中表达式的类型,下面正确的说法是( )。 A. 必须是关系表达式
B. 必须是关系表达式或逻辑表达式 C. 可以是任意表达式
D. 必须是关系表达式或算术表达式
6.对for(表达式1;;表达式3)可以理解为( )。 )。
)。
。
)
A. for(表达式1;0;表达式3) B. for(表达式1;表达式1;表达式3) C. for(表达式1;1;表达式3) D. for(表达式1;表达式3;表达式3)
7.执行语句for(i=1;i++<4;);之后,变量i的值为( )。
A. 3 B. 4 C. 5 D. 不确定
8.若二维数组a有m列,则在a[i][j]前的元素个数为( )。
A. j*m+i B. i*m+j C. i*m+j-i D. i*m+j+1
9.下面说法中正确的是( )。
A. 在C语言中,可以使用动态内存分配技术,定义元素个数可变的数组 B. 在C语言中,数组元素的个数可以不确定,允许随即变动 C. 在C语言中,数组元素的数据类型可以不一致
D. 在C语言中,定义数组后,就确定了它能容纳的相同数据类型元素的个数 10.不能把字符串:“good!”赋给数组b的语句是( )。
A. char b[10]={ g , o , o , d , ! }; B. char b[10];b=“good!”; C. char b[10];strcpy(b, “good!”) ; D. char b[10]=“good!”;
11.执行下面程序段,给x,y赋值时,不能作为数据分隔符的是( )。
int x,y;
scanf(”%d%d”,&x&y); A. 回车 B. Tab键 C. 回车
D. 逗号
12.已知ch是字符型变量,下面不正确的赋值语句为( )。
A. ch= a+b ; B. ch= \0 ; C. ch= 7 + 9 ; D. ch=5+9;
13.下面程序段的输出结果是( )。
char c1= 6 ,c2= 0 ;
printf(”%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2); A. 因输出格式不合法,输出出错信息 B. 6,0,6,102 C. 6,0,7,6 D. 6,0,5,7
14.在C语言的循环语句for, while,do while中,用于直接中断最内层循环的语句是( )。
A. switch B. continue C. break D. if
15.下面的循环结构中,不是无限循环的是( )。
A. for( i=1;;i++)
printf(“%d”,i--);
B. i=1;while(i--) {printf(”%d”,i++);} C. i=1;do{printf(”%d”,i); i++;} while(--i); D. for(i=0;i;i++)
printf(”%d”,i);
16.下面程序段的运行结果是( )。
char c[]=”\t\b\\\0will\n”; printf(“%d“,strlen(c)); A. 14 B. 3 C. 9
D. 字符串中有非法字符,输出值不确定
17.下面说法中正确的是:在C语言程序中( )。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和调用均不可以嵌套 D. 函数的定义和 调用均可以嵌套
18.若用数据名作为函数调用的实参,传递给形参的是( )。
A. 数据的首地址 B. 数组第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数
19.以下叙述中不正确的是( )。 A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
D. 在一个结函数内的符合语句中定义的变量在本函数范围内有效 20.一个变量的指针是指( )。
A. 该变量的值 B. 该变量的地址 C. 该变量的变量名 D. 该变量的标志
21.若有定义:int a[10],*p=a;,则p+5表示( )。 A. 元素a[5]的地址 B. 元素a[5]的值 C. 元素a[6]的地址 D. 元素a[6]的值
22. C语言规定,在一个源程序中,main函数的位置( )。 A. 必须在最开始
B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后
23. 一个C语言程序是由( )。
A. 一个主程序或若干个子程序组成 B. 函数组成 C. 若干过程组成 D. 若干个子程序组成
24. 下面哪项是构成C语言的基本单位( )。
A. 函数 B. 过程 C. 子程序 D. 子例程
25. 以下正确的说法是( )。 A. 定义函数时,形参的类型说明可以放在函数体内 B. return后边的值不能为表达式
C. 如果函数值的类型和返回值类型不一致,以函数值类型为准 D. 如果形参与实参的类型不一致,以函数值类型为准
26.对于基类型相同的两个指针变量之间,不能进行的运算是( )。 A. < B. = C. + D. –
27.变量的指针,其含义是指该变量的( )。 A. 值 B. 地址 C. 名 D. 一个标志
28.下面程序运行的结果是( )。 void ss(char *s,char t) { while(*s) { if(*s= =t) *s=t- a + A ;
s++;
} }
void main()
{ char str1[100]=”abcddfefdbd”,c= d ; ss(str1,c); printf(“%s\n”,str1); }
A. ABCDDFEFDBD B. abcDDfefDbD C. abcAAfefAbA D. Abcddfefdbd
29.下列说法中正确的是( )。 A. 结构体变量可以作为一个整体进行其值得输入和输出 B. 结构体成员项不可以是结构体
C. 结构体成员项可以是结构体或其他任何C语言的数据类型D. 结构体变量和结构体是相同的概念
30.下面说法中不正确的是( )。 A. 一个C源程序可有一个或多个函数组成 B. 一个C源程序必须包含一个main函数 C. C程序的基本组成是函数
D. 在C程序中,注释语句只能位于一条语句的后面
31.若执行下面的程序段,则下面描述中正确的是( )。 int k=5;
while(k=1)
k--;
A. while循环执行四次 B. 循环体执行一次 C. 循环体一次也不执行 D. 死循环
32.下面关于for循环的正确描述是( )。 A. for循环只能用于循环次数已经确定的情况
B. for循环中是先执行循环体语句,后判断表达式 C. 在for循环中,不能用break语句跳出循环
D. for循环的循环体可以包含多条语句,但必须用花括号括起来 33.不正确的定义语句是( )。
A. double x[5]={2.0,4.0,6.0,8.0,10.0}; B. int y[5]={0,1,3,5,7,9}; C. char c1[]={ 1 , 2 , 3 , 4 , 5 }; D. char c2[]={ \x10 , \x0a , \x08 };
34.下面是对s的初始化,其中不正确的是( )。 A. char s[5]={“abc”}; B. char s[5]={ a , b , c }; C. char s[5]=””; D. char s[5]=”abced”;
35.下面程序段的运行结果是( )。 char c[5]={ a , b , \0 , c , \0 };
printf(“%s”,c); A. a b B. ab C. ab c D. abc
36.以下说法中正确的是( )。
A. C语言程序总是从第一个定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main函数中定义 C. C语言程序总是从main函数开始执行
D. C语言程序中的main函数必须放在程序的开始部分 37.下列常量中,合法的C常量是( )。
A. “x-y” B. ‘105’ C. ‘Be’ D. 07ff
38.下面程序的输出结果是( )。 void main { int i=011,j=11;
printf(“%d,%d\n”,++i,j--);
}
A. 10,11 B. 12,10 C. 11,11 D. 10,9
39.下面程序的执行结果为( )。 void main() {int x=20,y; y=++x; y+=x; printf(”%d,”y);
y=x--; y+=x; printf(”%d,”y); }
A. 42,41 B. 42,42 C. 40,41 D. 42,40
40.下面程序的输出结果是( )。 void main() { int i=010,j=10; printf(“%d,%d”,i++,++j);
} A. 10,11 B. 11,11
C. 8,11 D. 8,10
41.能正确表示a和b同时为正或同时为负的表达式是( )。
A. (a>=0||b>=0)&&(a<0||b<0) B. (a>=0||b>=0)&&(a<0&&b<0) C. (a+b>0)&& (a+|b<0) D. a*b>0
42.以下关于运算符优先顺序的描述中正确的是( )。
A. 关系运算符<算术运算符<赋值运算符<逻辑运算符 B. 逻辑运算符<关系运算符<算术运算符<赋值运算符 C. 赋值运算符<逻辑运算符<关系运算符<算术运算符 D. 算术运算符<关系运算符<赋值运算符<逻辑运算符 43.下面程序的运行结果是( )。
void main() { } A. 6,1 B. 2,1 C. 6,0 D. 2,0
44.若有条件表达式(exp)?a++:b--,则以下表达式中完全等价于表达式(exp)的是( )。
A. (exp= =0) B. (exp!=0) C. (exp= =1) D. (exp!=1)
45.程序段如下,则正确的执行结果是( )。
int a,b,d=241; a=d/100%9; b=(-1)&&(-1);
printf(“%d,%d”,a,b);
int k=0; while(k++<=2); printf(“%d\n”,k); A. 2 B. 3 C. 4 D. 无结果
46.下面说法中正确的是( )。
A. 在C语言函数中,必须有形参 B. 在C语言函数中,形参必须是变量名 C. 在C语言函数中,可以有也可以没有形参 D. 在C语言函数中,数组名不能做形参
47.下面说法正确的是,在C语言中( )。
A. 实参和与其对应的形参各占用独立的存储单元 B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共占用存储单元 D. 形参是虚拟的,不占用存储单元
48.下面不正确的说法是:C语言规定( )。
A. 实参可以是常量、变量或表达式 B. 形参可以是常量、变量或表达式
C. 实参传递给形参时,要求实参必须有确定的值 D. 形参应与其对应的实参类型可以不一致
49.C语言允许函数值类型缺省定义,此时函数值隐含的类型是( )。
A. float型 B. int型 C. long型 D. double型
50.若有以下定义:char s[10]=“include“,*p=s;,则不能代表字符‘u’的表达式为( )。
A. s[4] B. s+4
D. p+=4,*p;
51. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )。
A. 地址传递 B. 单向值传递
C. 由实参传给形参,再由形参传给实参 D. 由用户指定传递方式
52. C语言规定,函数返回值的类型是由( )。
A. return语句中的表达式类型所决定 B. 调用该函数时的主调函数类型所决定 C. 调用该函数时系统临时决定
D. 在定义该函数时所指定的函数类型所决定
53. 若有int *p,a[10];p=a; ,则下列写法不正确的是( )。
A. p=a+2 B. a++ C. *(a+1) D. p++
54. 若用数组名作为函数调用的实参,传递给形参的是( )。
A. 数组的首地址 B. 数组第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数
55. 若使用以为数组名作函数实参,则下面说法中正确的是( )。
A. 在被调函数中,与该实参相对应的形参必须是同类型的数组名或指针变量 B. 实参数组类型与形参数组类型可以不匹配 C. 在被调函数中,不需要考虑形参数组的大小 D. 实参数组名与形参数组名必须一致
56. 设p1、p2是指向同一个字符串的指针变量,c为字符变量,则不能正确执行的赋值语句为 ( )。
A. c=*p1+*p2;
C. p1=p2; D. c=(*p1)*(*p2);
57. 若有一下结构体定义,则正确的引用和定义是( )。
struct example { int x; int y;} v1; A. example.x=10 B. example v2; v2.x=10; C. struct v2; v2.x=10; D. struct example v2={10,5};
58. 说明一个结构体变量时,系统分配给它的内存是( A. 各成员所需内存量的总和 B. 结构体中第一个成员所需内存量 C. 成员中占内存量最大者所需的容量 D. 结构体中最后一成员所需内存量
59. 在C语言中,文件由下面拿个组成( )。
A. 记录 B. 数据行 C. 数据块
D. 字符(字节)序列
60. 下面程序段的运行结果是( )。 char c[]=”\t\b\\\0will\n”;
printf(“%d“,strlen(c)); A. 14 B. 3 C. 9
D. 字符串中有非法字符,输出值不确定
61.以下叙述中不正确的是( )。
A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
。
)
D. 在一个结函数内的符合语句中定义的变量在本函数范围内有效 62.一个变量的指针是指( )。
A. 该变量的值 B. 该变量的地址 C. 该变量的变量名 D. 该变量的标志
二.读程序,写结果 1.
#include<stdio.h> void main() { }
输出: 2.
#include<stdio.h> void main() {
int i,j; for(i=j=1;i<5;i++) { if(i%2= =0) j++;
printf(“%d,%d\n”,i,j); }
int a=2,b; if(a<0)
b=0;
else if((a<5)&&(a!=2)) b=1; else if (a<10) b=5; else b=10; printf(“%d\n”,b);
continue;
输出: 3.
#include<stdio.h> void main() {
int i,j,k,c[20],a[20]={1,4,7,17,23,0}; int b[20]={2,6,9,10,15,24,45,72,81,92,0}; i=j=k=0;
while((a[i]!=0)&&(b[j]!=0) {
if(a[i]<b[j]) { else {
c[k]=b[j]; j++;} c[k]=a[i]; i++;}
k++; } if(a[i]= =0)
while(b[j]!=0) c[k++]=b[j++]; if(b[j]= =0)
while(a[i]!=0) c[k++]=a[i++]; c[k]=0; k=0;
while(c[k]!=0) printf(“%d,”,c[k++]);
}
输出: 4.
#include<stdio.h> int len(int m)
}
if(m<0) m=-m; while(m/10!=0) { } return k;
k=k+1; m=m/10;
void main() { }
输出: 5.
#include<stdio.h> void main() {
char c;
int v0=0,v1=0,v2=0; do {
switch(c=getchar()) { }
case ‘a’: case ’A’: case ‘e’: case ’E’: case ‘i’: case ’I’: case ‘o’: case ’O’: case ‘u’: case ’U’: v1+=1; default: v0+=1;v2+=1;
int a=1234;
printf(“%d\n”,len(a));
}while(c!=’\n’);
Printf(“v0=%d, v1=%d, v2=%d\n”,v0,v1,v2);
}
输入:Adescription
输出:
三. 编程题 1.程序编写
编程实现如下功能:
1) 从键盘输入10位同学的成绩 2) 统计并输出不及格同学的人数 3) 计算并输出全班的平均成绩 4) 输出最高分和最低分
5) 将全班同学的成绩按高到低的顺序排序,然后输出其名次和成绩
2.程序填空
下面程序的功能是找出二维数组a中每行的最大值,并按一一对应的顺序放入一维数组s中。即:第零行中对大值,放入s[0]中,第一行中最大值,放入s[1]中, ,然后输出每行的行号和最大值。请填空。 void main() {
int a[4][4],s[4],i,j,k; for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf(”%d”,[1]);
for(i=0;i<4;i++) { }
s[i]=[2]; for(j=1;j<4;j++)
if(s[i]<a[i][j]) [3]
for(i=0;i<4;i++)
printf(”Row=%2d Max=%5d\n”,i,s[i]);
}
参考答案: 一. 单项选择题
二. 读程序,写结果
1. 输出:5
2. 输出: 1,2 3,3
3. 输出:1, 2, 4, 6, 7, 9, 10, 15, 17, 23, 24, 45, 72, 81, 92, 4. 输出: 4
5. 输出:v0=13,v1=5,v2=13
三.编程题 1.
#include<stdio.h>
#define N 10
void main() {
int score[N],i,j,k,num,max,min,t; float avg,sum;
printf("请输入%d个同学的成绩:",N); for(i=0;i<N;i++)
scanf("%d",&score[i]);
max=min=score[0]; sum=num=0; for(i=0;i<N;i++)
{ sum=sum+score[i];
if(score[i]<60) num=num+1; if(score[i]>max) max=score[i]; if(score[i]<min) min=score[i]; }
avg=sum/N;
printf("\n不及格的学生人数:%d\n",num); printf("\n全班的平均分:%.2f\n",avg);
printf("\n最高分: %d, 最低分: %d\n",max,min); for(i=0;i<N-1;i++) { k=i; for(j=i+1;j<N;j++)
if(score[j]>score[k]) k=j;
if(k!=i) { t=score[i]; score[i]=score[k]; score[k]=t; } }
printf("\n以下为全班同学的名次与成绩(从高到底):\n"); for(i=0;i<N;i++)
printf("第%d名,成绩:%d\n",i+1,score[i]); } 2. [1] &a[i][j] [2] a[i][0] [3] s[i]=a[i][j]
正在阅读:
c语言程序设计模拟题07-25
平板电脑屏幕漂移解决方法06-10
数显表使用说明书03-18
七年级健康教育教案09-22
物理实验教学中心建设三年发展规划01-12
2008年11月国家职业秘书三级考试真题试卷及答案103-20
招投标问题分析及对策建议10-20
乡镇基层统计工作报告03-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 模拟题
- 程序设计
- 语言
- 2017年中华会计网校会计继续教育考试题目及答案
- IECEx国际电工委员会防爆电气产品认证体系介绍
- 网孔分析法 结点分析法
- 精品 人教版小升初语言归类复习
- 人教版四年级语文下册作文教学计划
- 农村小学英语教学反思
- 第3章管理道德与伦理
- 乱斗西游2小白龙阵容搭配攻略详解
- 2018年全市小学毕业考试卷及答案(语文科)
- 旅游文化课程论文
- 哈利波特与死亡圣器章节练习题
- 2011年11月公共营养师技能试题及答案
- 白猫计划哪个角色好 值得培养的角色推荐
- 中国古代房中养生秘笈(中国风系列)
- 建设规模化肉羊养殖场项目可行性研究报告
- 中药保留灌肠治疗慢性结肠炎50例
- 广东省2020-2021学年小升初语文期末试卷C卷(模拟)
- IE七大手法八大浪费
- Cisco路由配置命令
- 广东省2020-2021学年小升初语文期末试卷C卷(考试)