c语言基础练习题及答案
更新时间:2023-10-05 07:55:01 阅读量: 综合文库 文档下载
c语言基础练习题及答案
一、单项选择题
1. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为__C____的文件。 A、”.c” B、“.obj” C、“.exe” D、“.bas” 2. 以下选项中不正确的整型常量是_C____。 A、 12L B、 -10 C、 1,900 D、 123U 3. 表达式___C___的值是0。 A、3%5 B、3/5.0 C、3/5 D、3<5
4. 表达式 !(x>0||y>0) 等价于__D___。
A、!x>0||!y>0 B、!(x>0)||!(y>0) C、!x>0&&!y>0 D、!(x>0)&&!(y>0) 5. 若变量已正确定义并赋值,表达式__D____不符合C语言语法。 A、4&&3 B、+a C、a=b=5 D、int(3.14)
6. 若变量已正确定义,执行语句scanf(\\;时,___B___是正确的输入。
A、2030,40 B、20 30 40 C、20, 30 40 D、20, 30,40
7. 执行语句 printf(” __D____”, 2); 将得到出错信息。 A、%d B、%o C、%x D、%f
8. 设变量定义为“int s[ ]=\”,则数组s中有__B____个元素。 A、12 B、13 C、14 D、15
9. 设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是___B__。 A、2 B、3 C、4 D、&a[0]+1
10. 若变量已正确定义并赋值,表达式 -k++ 等价于__A____。 A、-(k++) B、(-k)++ C、-(k+1) D、-(++k)
11. 在C 语言程序中,在函数内部定义的变量称为__D____。 A、全局变量 B、全程变量 C、外部变量 D、内部变量
12. 若x是整型变量,表达式 (x=10.0/4.0) 的值是__D___ 。 A、2.5 B、 2.0 C、 3 D、2
13. 对于以下的变量定义,表达式__A____是正确的。 struct node { char s[10]; int k; } p[4];
A、p->k=2 B、p[0].s=“abc” C、p[0]->k=2 D、p->s=‘a’ 14. 下列运算符中,优先级从高到低依次为__D___。 A、&&,!,|| B、||,&&,! C、&&,||,! D、 !,&&,|| 15. 下列程序段的输出结果是__B___。 int *p, *q, k = 1, j=10 ;
p=&j; q = &k ; p = q ; (*p)++; printf(\
A、1 B、2 C、10 D、11
16. 以下各选项企图说明一种新的类型名,其中正确的是水量 (C) A) typedef v1 int; B) typedef v2=int; C) typedefv1 int v3; D) typedef v4: int;
17. 以下选项中,非法的字符常量是 (C) A) ‘\\t’ B) ‘\\17’ C)“n” D) ‘\\xaa’ 18. 以下程序的输出结果是 (C) main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]); }
A) 258 B) 741 C) 852 D) 369 19. 以下程序的输出结果是(B) main()
{ char st[20]= “hello\\0\\t\\\\\\”;
printf(%d %d \\n”,strlen(st),sizeof(st)); }
A) 9 9 B) 5 20 C) 13 20 D) 20 20 20. 以下程序的输出结果是 (D) main() { int a, b;
for(a=1, b=1; a<=100; a++) { if(b>=10) break; if (b%3= =1)
{ b+=3; continue; } }
printf(“%d\\n”,a); }
A) 101 B) 6 C) 5 D) 4
21. 以下程序的输出结果是 (D) union myun { struct
{ int x, y, z; } u; int k; } a; main()
{ a.u.x=4; a.u.y=5; a.u.z=6; a.k=0;
printf(%d\\n”,a.u.x); }
A) 4 B) 5 C) 6 D) 0
22. 以下程序段的输出结果是 (A) char s[]=\ printf (\ A) 9 B) 12 C) 13 D) 14
23. 以下程序的输出结果是 (B) main()
{ char ch[3][5]={\ printf(\ }
A) \24. 不合法的main函数命令行参数表示形式是 (C) A) main(int a,char *c[]) B) main(int arc,char **arv)
C) main(int argc,char *argv) D) main(int argv,char *argc[]) 25. 有以下程序 main()
{ char *s[]={\ p=s[1];
printf(\ }
执行后输出结果是 (C)
A) n,two B) t,one C)w,one D) o,two 26. 设有如下说明 typedef struct
{ int n; char c; double x;}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是 (A) A) STD tt[2]={{1,'A',62},{2, 'B',75}}; B) STD tt[2]={1,\ C) struct tt[2]={{1,'A'},{2, 'B'}};
D)structtt[2]={{1,\
27. 若变量c为char类型,则能正确判断出c为小写字母的表达式是( D )。 A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z')
C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z') 二、填空题
1. 设ch是字符型变量,判断ch为英文字母的表达式是: (ch>=’A’&&ch,=’Z’)||(ch>=’a’&&ch<=’z’) __。
2. 计算下列分段函数的 if 语句是_ if(x>0)y=1;else if(x=0)y=0;else y=-1;___。 1 x>0 y= 0 x=0 -1 x<0
3. 表达式 !!5的值是__1____。
4. 下列程序段的输出结果是___12___。 printf(\
5. 下列程序段的输出结果是__ k=4 s=6___。 int k, s;
for(k=0, s=0; k<10; k++) if (s>k) break ; else s += k;
printf(\
6. 下列程序段的输出结果是__15___。 #define MIN(x,y) (x)<(y)?(x) : (y)
printf(\
7. 下列程序在运行时可能会出错,原因是__指针变量s未赋初值____。 # include void main( ) { char *s; gets(s); puts(s); }
8. 下列程序段的输出是___6 0__。 # include int f(int m) { static int k=0; int s=0;
for(; k<=m; k++) s++; return s; }
void main( ) { int s1, s2; s1=f(5); s2=f(3);
printf(\ }
9. 下列程序段的输出结果是__ fgh ___。 char *st[ ]={\ printf(\
10. 用typedef定义一个含10个元素的整型数组ARR。 typedef int ARR[10];
11.以下程序调用findmax函数返回数组中的最大值,请填空。 findmax(int *a,int n) { int *p,*s; for(p=a,s=a; p-a if ( *p>*s ) s=p; return(*s); } main()
{ int x[5]={12,21,13,6,18}; printf(\ }
三、程序(段)填空题
1.设变量x, y, z已正确定义和赋值,请仔细阅读程序段A,然后在程序段B中填入正确的内容,使程序段A和程序段B有相同的功能。 程序段A 程序段B
x=x+y; y=x-y; x=x-y;
z=x+y; z=x ; x=y ; y=z; z=x+y;
2.请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。
char *f1(char s[ ], char t[]) { int k;
for(k=0; t[k]!=' '; k++) s[k]=t[k]; s[k]=' '; return s; }
char *f2(char *s, char *t) { char *p=s ;
while(( *p++ = *t++)!=' ') ;
return s ; }
===========================================================
一、单项选择题
1. ___D___是合法的用户自定义标识符。 A、 b-b B、float C、 D、 _isw
2. 若变量已正确定义并赋值,表达式___B___不符合C语言语法。 A、a*b/c; B、3.14%2 C、2, b D、a/b/c 3. ___C__是不正确的字符常量。 A、'n' B、'1' C、\、'101'
4. 在 C 程序中,用___B__表示逻辑值“真”。
A、1 B、非 0 的数 C、非 1 的数 D、 大于 0 的数
5. __C____把x、y定义成float类型变量,并赋同一初值3.14。 A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14;
6. 若变量已正确定义,表达式___C___的值不是2。 A、2&3 B、1<<1 C、a==2 D、1^3
7. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和__C____等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 8. 设变量定义为“int a, b;”,执行下列语句时,输入_D____,则a和b的值都是10。 scanf(\;
A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=10 9. 下列程序的输出结果是__D___。 fun(int a, int b, int c) { c =a*b; } void main( ) { int c; fun(2,3,c);
printf(”%dn”,c); }
A、0 B、1 C、6 D、无法确定
10. 在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。 A、int B、double C、void D、char
11. 表达式 strlen(”hello”) 的值是___B____。 A、 4 B、 5 C、 6 D、 7 12. 设变量定义为“int a[4];”,则表达式__D____不符合C语言语法。 A、*a B、a[0] C、a D、a++
13. 设变量定义为“int x, *p=&x;”,则&*p相当于__A___。 A、p B、*p C、x D、*&x
14. 若变量已正确定义,_A___不能使指针p成为空指针。 A、p=EOF B、p=0 C、p=’’ D、p=NULL
15. 对于以下的变量定义,表达式__D____不符合C语言语法。 struct node { int len; char *pk;
} x = {2, \
A、p->pk B、*p.pk C、*p->pk D、*x.pk 16. 有如下程序
int runc(int a,int b) { return(a+b);} main0
{ int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%\\d\\n”,r); }
该程序的输出的结果是 (D) A) 12 B) 13 C) 14 D) 15
17. 对于基类型相同的两个指针变量之间,不能进行的运算是 (C) A) < B) = C) + D) - 18. 有如下程序
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2)); else return(2); }
main0
{ printf(“%d\\n”,fib(3)); 该程序的输出结果是 (B) A} 2 B} 4 C} 6 D} 8 19. 有如下定义
struct person{char name[9]; int age;}; strict person class[10]={“Johu”, 17, “Paul”, 19 “Mary”, 18, “Adam 16,};
根据上述定义,能输出字母M的语句是 (D) A) prinft(“%c\\n”,class[3].mane); B) pfintf(“%c\\n”,class[3].name[1]); C) prinft(“%c\\n”,class[2].name[1]); D) printf(“%^c\\n”,class[2].name[0]); 20. 以下所列的C语言常量中,错误的是 (B) A) 0xFF B) 1.2e0.5 C) 2L D) ‘\\72’ 21. 有以下程序段 int k=0
while(k=1)k++;
while 循环执行的次数是 (A)
A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 22. 以下程序的输出结果是 (C) A) 0 B) 29 C) 31 D) 无定值 fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a);
printf(“%d”,a); }
23. 下列程序段的输出结果是 (A)
A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2 void fun(int *x, int *y)
{ printf(“%d %d”, *x, *y); *x=3; *y=4;} main()
{ int x=1,y=2; fun(&y,&x);
printf(“%d %d”,x, y);
}
24. 当调用函数时,实参是一个数组名,则向函数传送的是 (B) A) 数组的长度 B) 数组的首地址
C) 数组每一个元素的地址 D) 数组每个元素中的值 25. 以下程序的输出结果是 (A) A) 1 B) 2 C) 3 D) 4 long fun( int n) { long s;
if(n= =1 || n= =2) s=2; else s=n-fun(n-1); return s; }
main()
{ printf(“%ld\\n”, fun(3)); } 26. 以下程序的输出结果是 (B) A) 16 B) 2 C) 9 D) 1 #define SQR(X) X*X main()
{ int a=16, k=2, m=1;
a/=SQR(k+m)/SQR(k+m); printf(“d\\n”,a); }
27. 以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j;
for(i=j;i if(a[i] return(p); }
在下划线处应填入的是 (D) A) i=p B) a[p]=a[i] C) p=j D) p=i
二、填空题
1. 表示“x≥y≥z”的C表达式是___ x>=y && y>=z ____。 2. 下列程序段的输出是__1____。 printf(\
3. 下列程序段的输出是__6,90____。 int k; float s;
for (k=0, s=0; k < 7; k ++) s += k/2;
printf(\
4. 下列程序段的输出是__5,25_____。 #define f(a, b, x) a*x+b
printf(\
5. 下列程序段的输出是_*#*#____。 main() { int k;
for(k=1; k<5; k++) { if(k % 2) printf(\ else continue; printf(\ } }
6. 下列程序段的输出是__5 8___。 # include int f(int x) { static y=1; y++; x += y; return x; }
void main() { int k; k=f(3);
printf(\}
7. 下列程序段的输出是___5__。 int *p, *q, k = 5 , j = 6 ; q = &k ; p = q ; q = &j ; printf(\8. 函数
void f(char s[ ], char t[ ]) { int k=0;
while (s[k]=t[k]) k++; }
等价于
void f(char *s, char *t) { while (_*s++=*t++____); }
9. 下列程序段的输出是_ ne,s ____。 char *a[2]={\ printf(\printf(\
10. 下列程序编译后生成 t.exe, 运行 t input output zoo oil 的输出结果是__zoo___。 void main(int argc, char * argv[ ]) { int k;
char *p=argv[1];
for(k=2; k if(strcmp(argv[k], p)>0) p=argv[k];
printf(\ }
11. 下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:After swap 5, 3。 void main( ) { int a=3, b=5; swap( &a, &b ) ;
printf(\ }
swap( int *p, int *q ) { int t; t=*p; ; *p=*q ; *q=t ; }
一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1) 计算机的存储器完整的应包括 A) 软盘、硬盘 B) 磁盘、磁带、光盘 C) 内存储器、外存储器 D) RAM、ROM (2) 计算机中运算器的作用是
A) 控制数据的输入/输出 B) 控制主存与辅存间的数据交换
C) 完成各种算术运算和逻辑运算 D) 协调和指挥整个计算机系统的操作 (3) 软磁盘处于写保护状态时,其中记录的信息 A) 绝对不会丢失
B) 不能被擦除,但能追加新信息 C) 不能通过写磁盘操作被更新
D) 不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除 (4) 光盘根据基制造材料和记录信息的方式不同,一般可分为 A) CD、VCD
B) CD、VCD、DVD、MP3
C) 只读光盘、可一次性写入光盘、可擦写光盘 D) 数据盘、音频信息盘、视频信息盘 (5) 在计算机系统中,可执行程序是
A) 源代码 B) 汇编语言代码 C) 机器语言代码 D) ASCII码
.若有以下说明和语句:d
struct worker {
int no;
char *name;
}work,*p=&work;
则以下引用方法不正确的是 A) work.no B) (*p).no C) p->no D)work->no
10.数组名作为参数传给函数,作为实际参数的数组名被处理a
为 。
A) 该数组长度 B) 该数组元素个数 C) 该函数中各元素的值 首地址
一. 阅读程序,写出运行结果:
1. main()
{int a=1,b=4,c=2;
float x=10.5,y=4.0.z ;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf(“%f\\n”,z); } 2.
main()
{ static int a[4][5]={{1,2,3,4,0},{2,2,0,0,0},{3,4,5,0,0},{6,0,0,0,0}};
int j,k;
D) 该数组的 for (j=0;j<4;j++)
{ for(k=0;k<5;k++)
{if (a[j][k]==0) break;
printf(“ %d”,a[j][k]); } }
printf(“\\n”); }
3. main()
{ char *a[4]={”*****”,”Osaka ”,”Sapporo ”
char *pt;
pt=a;
jprintf(“%s”,*(a+2)); }
4. main()
{ int a[6][6],i,j;
for (i=1 ;i<6 ; i++)
for ( j=1;j<6;j++)
a[j]= i*j;
for (i=1 ;i<6 ; i++)
for ( j=1;j<6;j++)
,”Nagoya ”}; printf( \
printf(“\\n”); } }
5. main()
{int a[]={1,2,3,4},i,j,s=0; j=1;
for(i=3;i<=0;i--)
{s=s+a*j;
j=j*10; }
printf(“s=%d\\n”,s); }
. 填写程序:
1.已知能被4整除而不能被100整除的或者能被400整除的年份是闰年,则闰年的判断条件程序如下:
main()
{int year,leap;
scanf(“%d ”,&year);
if ((year%4==0)&&(year0!=0)||(year@0==0))
leap=1;
else leap=0;
if ( leap==1 )
printf(“是闰年”);
else printf(“ 不是闰年”);
2.给定一3 x 4的矩阵,求出其中的最大元素值,及其所在的行列号:
main()
{int i,j,row=0,colum=0,max;
static int a[3][4]={{1,2,3,4},{9,8,7,6},{10,-10,-4,4}}; ;
for(i=0;i<=2;i++)
for(j=0;j<=3;j++) { ; ; }
printf(“%d%d”,row,colum); }
习题答案:
一.1.A 2. B 3.B 4.D 5.B 6.D 7.B 8.D 9.D 10.A
二. 1. 13.700000
2. 1234223456
3. Sapporo
4. 1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25 5. 0 三. 1.
(year%4==0)&&(year0!=0)||(year@0==0)
leap==1
2. max=a[0][0];
if (a[j]>max) max=a[j];
row=i,colum=j;
原文链接:http://www.ban102.com.cn/article/detail.asp?id=755
正在阅读:
c语言基础练习题及答案10-05
地产公司采购部组织架构图及职务说明书03-08
警钟长鸣观后感04-02
中国地质大学地史学期末考试复习题04-15
某市地块价值评估报告基准地价法04-09
课程设计(工艺)说明书07-01
程序设计课程教学大纲07-18
通信原理实验报告 - 图文11-11
揭牌仪式主持词开场白三篇09-07
网络妈妈观后感12-11
- 教师招聘考试真题(中学数学科目)及答案 - 图文
- 读《光辉的旗帜》有感
- 学生会副部长竞选讲稿
- 江苏省石油化工码头企业安全生产标准化考评细则 - 图文
- 2016尔雅 民俗资源与旅游 期末考试答案 整理
- 九年级华师大《二次函数》全章教案
- 生化作业6
- 串口资料
- 2014北大附中初三数学二模复习策略
- 曼尼希反应
- 努肉孜节2012
- 卫生部关于印发《关于卫生监督体制改革实 施的若干意见》和《关
- 《生活中的线条》教学设计
- 广告学概论讲义 - 图文
- VS1真空断路器原理图及两种VS1真空断路器的介绍
- 晨读倡议书 - 致全国青年朋友
- 建筑物理复习(建筑热工学) - 图文
- 高级消防与精通急救题库 doc
- YJK软件的优化设计
- 小学生必背古诗100首(带拼音)
- 语言基础
- 练习题
- 答案
- 西交《水污染控制工程》在线作业试题及答案
- 东北大学matlab上机作业
- 6、全国大学生数学建模竞赛A0807
- 03《计算机应用基础》题库(三)
- 山东省省级规范化学校评估标准解读
- 生物化学糖综述
- GB14881试题
- 小讲课
- 小学三年级体育教案下学期
- 2016年湖北省普法考试 第一章全面推进依法治国的重大 战略布局 答案
- 患者发生用药错误应急预案
- 北语17春《计算机基础》作业2答案
- 行政法与行政诉讼法试卷C
- 入伍新兵的思想和心理
- 儿科考试题库及答案
- 北师大版数学小学六年级下册第一单元《圆柱与圆锥》检测试题
- 小学生奥数内部习题集
- 最新整理水电站引水隧洞工程竣工安全鉴定自检报告 doc - 图文
- 苏大细胞真题04年-08年
- 冷库的毕业设计