C语言程序设计上机及习题集
更新时间:2023-09-23 14:39:02 阅读量: IT计算机 文档下载
C语言试卷
C语言程序设计复习题
一、
选择题
(1) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是
A) 3 B) 4 C) 11 D) 12 (2) 下列程序的输出结果是
A) 3 B) 3.2 C) 0 D) 3.07 main()
{ double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(\ }
(3) 下列程序执行后的输出结果是(小数点后只写一位)
A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 main()
{ double d; float f; ling l; int i; i=f=1=d=20/3;
printf(\ }
(4) 下列变量定义中合法的是
A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; (5) 设 int x=1, y=1; 表达式(!x||y--)的值是
A) 0 B) 1 C) 2 D) -1 (6) 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是 A) if (x>0) y=1; B) if(x)
else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; (7) 以下循环体的执行次数是
A) 3 B) 2 C) 1 D) 0 main() { int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--)printf(\ }
第1页(本试卷共25页)
C语言试卷
(8) 以下叙述正确的是
A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。
C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。 (9) 下列程序执行后的输出结果是
A) G B) H C) I D) J main()
{ int x='f'; printf(\(10) 执行下面的程序段后,变量k中的值为
A) 不定值 B) 33 C) 30 D) 10 int k=3, s[2]; s[0]=k; k=s[1]*10; (11) 若已定义:
int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用上
A) a[p-a] B) *(&a[i]) C) p[i] D) a[10] (12) 下列程序执行后的输出结果是
A) 6 B) 7 C) 8 D) 9 void func(int *a,int b[]) { b[0]=*a+6; } main() { int a,b[5]; a=0; b[0]=3;
func(&a,b); printf(\ }
(13) 下列程序的运行结果是
A) a=%2,b=%5 B) a=2,b=5 C) a=d, b=d D) a=%d,b=%d #include
{ int a=2,c=5;
printf(\(14) 下列程序执行后的输出结果是
A) 3 B) 6 C) 9 D) 随机数 main()
{ int a[3][3], *p,i; p=&a[0][0];
for(i=p; i<9; i++) p[i]=i+1; printf(\ }
(15) 设有数组定义: char array [ ]=\则数组 array所占的空间为
第2页(本试卷共25页)
C语言试卷
A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 (16) 下列程序的输出结果是
A) 4 B) 6 C) 8 D) 10 int b=2;
int func(int *a) { b += *a; return(b);} main()
{ int a=2, res=2; res += func(&a); printf(\ }
(17) 在以下四组中,每组有两个分别运算的函数,运算结果相同的是 A) 4 B) 2 C) 2 D) 0 main()
{ int i, j, m=0, n=0; for(i=p; i<2; i++) for(j=0; j<2; j++) if(j>=i) m=1; n++; printf(\ }
(18) 下列程序的输出结果是
A) 5 B) 6 C) 7 D) 8 struct abc { int a, b, c; }; main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0],a+s[1],b; printf(\ }
(19) 设 int b=2;表达式(b>>2)/(b>>1)的值是
A) 0 B) 2 C) 4 D) 8 (20) 在C程序中,可把整型数以二进制形式存放到文件中的函数是
A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数 (21) 下列程序执行后的输出结果是
A) -32767 B) FFFE C) -1 D) -32768 main()
{ char x=0xFFFF; printf(\
(22) 若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a);
{ case 1.0: printf(\ case 2.0: printf(\ } }
第3页(本试卷共25页)
C语言试卷
C) switch(b) D) switch(a+b);
{ case 1: printf(\ default: printf(\ case 1+2: printf(\ } } (23) 以下程序段的执行结果是
A) a=12 y=12 B) a=12 y=12 a=14 y=16 a=16 y=28 a=16 y=20 a=18 y=24
C) a=12 y=12 D) a=12 y=12 a=14 y=26 a=14 y=44 int a, y; a=10; y=0; do
{ a+=2; y+=a;
printf(\ if(y>20) break; { while(a=14); . . .
(24) 若有以下调用语句,则不正确的fun函数的首部是
A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a) main() { ?
int a[50],n; ?
fun(n, &a[9]); ? }
(25) 语句printf(\的输出结果是 A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bou C) re'hi'you D) abre'hi'y\\bou (说明:'\\b'是退格符) (26) 请选出正确的程序段
A) int *p; B) int *s, k; scanf(\ ? ?
C) int *s, k; D) int *s, k; char *p, c; char *p, e;
第4页(本试卷共25页)
C语言试卷
s=&k; s=&k; p=&c; p=&c; *p='a'; s=p; ? *s=1; ?
(27) 已知指针p的指向如下图所示,则执行语句 *--p;后*p的值是 A) 30 B) 20 C) 19 D) 29
a[0] 10 a[1] 20 a[2] 30 a[3] 40 a[4] 50 (28) 设已有定义: char *st=\下列程序段中正确的是 A) char a[11], *p; strcpy(p=a+1,&st[4]); B) char a[11]; strcpy(++a, st); C) char a[11]; strcpy(a, st); D) char a[], *p; strcpy(p=&a[1],st+2); (29) 下列程序执行后的输出结果是
A) you&ne B) you C) me D) err mai()
{ char arr[2][4];
strcpy(arr,\ arr[0][3]='&'; printf(\ }
(30) 下列程序执行后的输出结果是
A) hello B) hel C) hlo D) hlm void func1(int i); void func2(int i); char st[]=\ void func1(int i) { printf(\ if(i<3){i+=2;func2(i);} }
void func2(int i) { printf(\ if(i<3){i+=2;func1(i);} } main()
{ int i=0; func1(i); printf(\
(31) 假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<
回车>后,程序的输出结果是
A) hello good B) hg C) hel D) hellogood main()(int argc, char *argv[])
第5页(本试卷共25页)
C语言试卷
(7) 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。
#include main()
{ char str[100],str2[100],c; int i,s;
printf(\ printf(\ i=0;
while((strl[i]==str2[i]&&(str1[i]!=【9】)) i++; s=【10】; printf(\ }
(8) 以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请填空。
#include main()
{ FILE *fp;
char str[100]; int i=0; if((fp=fopen(\【11】))==NULL) { printf(\ printf(\ while (str[i])
{ if(str[i]>='a'&&str[i]<='z') str[i]=【12】; fputc(str[i],fp); i++; }
fclose(fp);
fp=fopen(\【13】); fgets(str,100,fp); printf(\ fclose(fp); }
(9) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。 #include. main()
{ char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C' ,'D','E','F'};
int c[64],d,i=0,base; long n;
第21页(本试卷共25页)
C语言试卷
printf(\ printf(\ do
{ c[i]=【14】;
i++; n=n/base; } while(n!=0);
printf(\ for(--i;i>=0;--i) { d=c[i];
printf(\【15】; } }
(10) 若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【16】
: . char a[10],b;
scanf(\ : .
(11) 下面程序的输出结果是 【17】
char b[]=\ABCD\ main()
{ char *chp;
for(chp=b; *chp: chp+=2) printf(\ printf(\
(12) 下面程序输出的结果是 【18】
#define MAX 3 int a [MAX]; main()
{ fun1( ); fun2( a ); printf(\ fun1( ) { int k, t=0;
for (k=0; k<MAX; K++,t++) a[k]=t+t; }
fun2(int b[]) { int k;
for(k=0; k<NAX; k++) printf(\ }
(13) 以下程序输出的是 【19】
main( )
{ int a[10]={19,23,44,17,37,28,49,36}, *p;
第22页(本试卷共25页)
C语言试卷
p=a;
printf(\ }
(14) 以下程序输出的是 【20】
main( )
{ int i=3, j=2; char *a=\DCBA\ printf(\ }
(15) 以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。
exchange(int *x, int *y) { int t;
t=*y; *y= 【21】 ; *x= 【22】 ; }
(16) 若以下定义和语句,则sizeof(a)的值是 【23】 ,而sizeof(b)的值是 【24】
struct { int day; char mouth; int year;} a, *b; b=&a;
(17) 以下fun函数的功能是:累加数组元数中的值.n为数组中元素的个数, 累加的和值放入x所指的存储单元中,请填空.
fun(int b[ ],int n, int *x) { int k, r=0;
for(k=0;k (18) 变量root有如图所示有存储结构,其中sp是指向字符串的指针域,next 是指向该结构的指针域,data用 以存放整型数. 请填空 , 完成此结构的类型说明和变义 sp next data 量root的定 ┌─┬─┬─┐ root│ │ │ │ └─┴─┴─┘ struct list { char *sp; 【27】 ; 【28】 ; }root; (19) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空. #include 第23页(本试卷共25页) C语言试卷 FILE *fp; main() { int i,j; if((fp=fopen( 【29】, \ for(i=0; i<10; i++) { scanf(\ fwrite(&j,sizeof(int),1, 【30】 ); } fclose(fp); } 三.请用 C 语言的表达式表示下列代数式 1a?f2(1)4 db??t2?d (2) x3sin550÷πd (3)loge(a?a?x) (e=2.71828) (4) (5) (6) 1a?be(e=2.71828) 3(c?b)?d?ac?d 1sin50?4 第24页(本试卷共25页) C语言试卷 (7) (8) ea?b (e=2.71828) loge(a?b3) c?(9 ) a?db2 (10) b?(a?c)?dc?3 四、编程题 编制一个函数:此函数能对一维数组内存放的10个学生成绩求平均成绩。(形参数组名为(1) array) (2) 编制一个函数:此函数能对一维数组内存放的10个学生成绩求平均成绩。(形参为指向具有10个元素数组的指针变量) (3) 编写一个函数:统计出整数文件a:\\xc.dat中的数据个数。 (4) 编制一个完整的程序:从键盘输入字符串str1,将字符串str1复制到字符串str2,并统计字符串的长度。(用字符数组实现) (5) 编制一个完整的程序:从键盘输入字符串str1,将字符串str1复制到字符串str2,并统计字符串的长度。(用字符指针实现) (6) 编制一个完整的程序:从键盘输入10个整型数组元素,调用自定义函数void sort( int array[ ] , int n )对其进行由大到小排序,最后将排序结果输出到显示器终端,要求自定义函数sort( )中用冒泡法实现排序。 第25页(本试卷共25页)
正在阅读:
C语言程序设计上机及习题集09-23
新中国成立70周年主题宣传活动演讲稿3篇02-25
AE滤镜使用介绍(概述)06-07
小学生校园安全作文06-15
小学数学学科二年级下册教学计划08-27
2014年5月会议纪要11-22
自动化车床管理04-14
给母亲的一封信1000字06-29
- 供应商绩效评价考核程序
- 美国加州水资源开发管理历史与现状的启示
- 供应商主数据最终用户培训教材
- 交通安全科普体验教室施工方案
- 井架安装顺序
- 会员积分制度
- 互联网对美容连锁企业的推动作用
- 互联网发展先驱聚首香港
- 公司文档管理规则
- 机电一体化系统设计基础作业、、、参考答案
- 如何选择BI可视化工具
- 互联网产品经理必备文档技巧
- 居家装修风水的布置_家庭风水布局详解
- 全省基础教育信息化应用与发展情况调查问卷
- 中国石油--计算机网络应用基础第三阶段在线作业
- 【知识管理专题系列之五十八】知识管理中如何实现“场景化协同”
- 网络推广方案
- 中国石油--计算机网络应用基础第二阶段在线作业
- 汽车检测与维修技术专业人才培养方案
- 详解胎儿颈透明层
- 习题集
- 上机
- 程序设计
- 语言
- 财务报表的逻辑
- 浅析高科技厂房安防建设现状及发展趋势
- 全新版大学英语综合教程1答案集
- 超越自卑(美国:A.阿德勒)
- 甘肃省天水一中2016届高三上学期期中考试化学试题
- 网络安全实验指导书(免费共享版)
- 巩义市之朴中学德育工作典型经验介绍
- 当代大学生人生观调查报告
- 鄂尔多斯市地方税务局稽查分局机关工作制度
- 小学五年级数学小数点乘除法计算练习题合集
- 铝的阳极氧化实验报告
- 苏建价(2005)349号 附件二 - 图文
- 14退料作业指引
- 江西高考历史二轮复习之专项训练效果检测题37Word版含答案
- 伯牙绝弦,黄婷婷
- 四年级安全教案
- 湖南省监理员考试资料(三)
- 案列分析
- 2015国考面试高分技巧:把握人际关系的公务性特征
- 2013年版高速铁路联调联试及运行试验实施细则