C程序试题及答案
更新时间:2024-01-24 09:23:01 阅读量: 教育文库 文档下载
- c程序设计试题及答案推荐度:
- 相关推荐
一、选择题(本题30分,每小题2分) 1.C语言中的简单数据类型包括( B )。
A.整型、实型、逻辑型 C.整型、字符型、逻辑型
B.整型、实型、字符型
D.整型、实型、逻辑型、字符型
9.已知:char s[20]= “programming”,*ps=s; 则不能引用字母o的表达式是 ( A )。
A.ps+2
B.s[2] C.ps[2]
D.*(ps+2)
10.以下错误的描述是( C )。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前
完成。
2.有定义语句:int b; char c[10]; 则正确的输入语句是( B )。
装
A.scanf(“%d%s”,&b,&c); C.scanf(“%d%s”,b,c);
B.scanf(“%d%s”,&b,c); D.scanf(“%d%s”, b,&c);
B.while循环是先判断表达式,后执行循环体语句。
C.do-while和for循环均是先执行循环体语句,后判断表达式。 D.for,while和do-while循环中的循环体均可以由空语句构成。 11.已知:struct sk
{ int a; float b; }stutype;
则下面叙述中错误的是( C )。
A.struct 是结构体类型的关键字 B.struct sk 是用户定义的结构体类型 C.stutype 是用户定义的结构体类型名 D.a和b都是结构体成员名 12.执行如下程序段后,a的值为( B )。 int *p, a=10,b=1; p=&a; a=*p+b;
A.12
B.11 C.10
D.编译出错
3.已有定义:char a[]=“xyz”,b[]={?x?,?y?,?z?}; 以下叙述中正确的是( C )。
A.数组a和数组b的长度相同 B.a数组长度小于b数组长度 C.a数组长度大于b数组长度 D.以上说法都不对 4.以下对C语言函数的有关描述中正确的是( A )。
A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能
订
传递给实参。
B.C函数既可以嵌套定义,又可以递归调用。 C.函数必须有返回值,否则不能使用函数。 D.函数必须有返回值,返回值类型不定。 5.以下各标识符中,合法的用户标识符是( D )。
A.28p
线
B.aaam.h C.for D.a23f
6.若已定义x和y为double类型,则表达式x=1,y=x+3/2的结果是( C )。
A.1
B.2
C.2.0
D.2.5
7.设int a=5,b=6,c=7,d=8,m=2,n=2; 则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( C )。
A.0
B.1
C.2
D.3
8.若int a[ ][4]={1,2,3,4,5,6,7,8,9}; 则此数组的第一维的大小是( B )。
A. 2
B.3 C.5 D.4
13.以下程序段的输出结果为( B )。
#define M(x,y,z) x*y+z main( )
{ int a=1,b=2,c=3; printf(“%d\\n”,M(a,b,c));}
A.6
B.5 C.7
D.4
⑨
count++; }}
printf(“s=%d\\tcount=%d\\n”,s,count);}
错误所在行: 2 ,应该为: int i,a[20],s,count; 错误所在行: 5 ,应该为: scanf(“%d”,&a[i]); 错误所在行: 7 ,应该为: if(a[i]<0) continue; 2. 下面的函数add为求两个整数之和。 main( )
① { int add( ); ② int a=3,b=5,c; ③
c=add(a,b);
装
14.已知: struct sk
{ int a; float b;} data,*p;
若有p=&data,则对data中的成员a的正确引用是( B )。 A.(*p).data B.(*p).a C.p->data.a D.p.data.a 15.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时,函数 feof(fp)的值是( A )。
A.0
B.1 C.-1
D.一个非0值
printf(“%d”,c);}
④ ⑤ ⑥ ⑦
int add(int x,int y); { int z; z=x-y; return z;}
订
二、程序改错题,每道题有三处错误,指出错误所在行号,并改正。(本题12分,每小题6分)
1. 程序读入20个整数,统计非负数个数,并计算非负数之和。 ① main()
错误所在行: 1 ,应该为: int add(int,int); 错误所在行: 4 ,应该为: int add(int x,int y) 错误所在行: 6 ,应该为: z=x+y;
三、阅读程序题(本题26分,每小题2分)
1.以下程序输出的结果是 9,8 (对一个,给一分)
main( ) { int i=8, j;
j=i++ ; printf(\ }
线
② { int i,a[ ],s,count; ③ s=count=0; ④ ⑤ ⑥ ⑦ ⑧
for(i=0;i<20;i++) scanf(“%d”,a[i]); for(i=0;i<20;i++) { if(a[i]<0) break; s+=a[i];
2.以下程序输出的结果是 3 main()
{ int a=1,b=2,c=3,x;
if( c
8.下面程序的输出结果是 a=2,b=1 (或2,1. 对一个,给一分) main()
{int x=1,a=0,b=0; switch(x) { case 0: b++;
case 1: a++; case 2: a++;b++;} printf(“a=%d,b=%d”,a,b);} 9.下面程序的输出结果是 b main() { char m;
m='B'+32;
}
装
else x=3 ; printf(“%d”,x);}
3.下面程序的输出结果是 3 main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=a; printf(“%d\\n”,*(p+2)); } 4.下面程序的输出结果是 13 printf(\
订
int fun(int n) {int s ;
if(n==0) s=7 ; else s=n+fun(n-1) ; return s ; }
main() { printf(“%d\\n”,fun(3)); }
5.在16位IBM-PC机上使用C语言,若有如下定义:
10.下面程序的输出结果是 876 (不完整给一分)
main() {int n=9;
while(n>6){ n--; printf(“%d”,n); } }
11.定义如下变量和数组:int k; int a[3][3]={9,8,7,6,5,4,3,2,1};
则下面语句的输出结果是 951 for(k=0 ;k<3 ;k++) printf(“ %d ”,a[k][k]) ; 12.下列程序段的输出结果是 rld 线
struct data { int i; char ch; double f; }b;
则结构体变量b占用内存的字节数是 11 6.若有定义:int a=511, *b=&a; 则printf(“%d\\n”,*b); 的输出结果为 511 main( ) { char *s=“bigworld”; printf(“%s”, s+5); } 7.下面程序的输出结果是 7,0 (对一个,给一分) main()
{ int a[3][4]={{2,4,6},{4,4,7},{8,4,9}}; printf(“%d,%d”,a[1][2],a[2][3]);}
13.在对文件进行操作的过程中,若要求文件的位置指针回到文件的开头,应当
调用的函数是 rewind 函数。
四、完善程序题,在横线上填写相应的语句,将程序补充完整(本题16分,每空
2分)
1.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。 int mystrlen(char * str) { int i;
for(i=0; str[i] !=?\\0?; i++) ; return( i ); }
if((fp=fopen(“text.txt”, “w” ))==NULL) (写成”wb”, { printf(\ 给一分)
printf(“input a string:\\n”); gets(str); while( str[i])
{ if( str[i]>=?a?&&str[i]<=?z?) str[i]= str[i]-32 ; fputc(str[i],fp); i++; } fclose(fp);
fp=fopen(“text.txt”, “r” ) (写成”r b”, 给一分) fgets(str,100,fp); printf(“%s\\n”,str); fclose(fp); }
五、编程题(本题16分)
1.从键盘输入一正整数m,并判断其是否为素数。(5分) #include”stdio.h” void main( ) { int m,I;
scanf(“%d”,&m); ???????????2 for(i=2;i if(m%i==0) break; ???????????3 if(i>=m) printf(“%d is a prime\\n”,m); else printf(“%d is not a prime\\n”,m); } ???????????5 装 2.以下程序表示:冒泡法对10个数从小到大排序。 #include printf(\ for(i=0;i<10;i++) scanf (\ printf(\ for(j=0;j<9;j++) for(i=0; i<9-j ;i++ ) if( a[i]>a[i+1] ) {t=a[i]; a[i]=a[i+1] ;a[i+1]=t;} printf(\ for(i=0;i<10;i++) printf(\ } 订 线 3.以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文本文件test.txt中,然后从该文件中读出字符串并显示出来。 #include { FILE * fp; char str[100]; int i=0; 2.有一个3?4的矩阵,要求编写程序求出其中值最大的那个元素的值,以及其所在的行号和列号,其中,矩阵的元素值由键盘输入。(6分) #include”stdio.h” void main() {int i,j,row=0,colum=0,max; 3.以下程序是对输入的两个整数按大小顺序输出,编一函数swap,其功能是交换两个变量的值.(5分) void swap( int *p1,int *p2 ) ????????????2 { int temp ; temp=*p1; *p1=*p2; *p2=temp; ????????????5 max=a[0][0]; ????????????3 for(i=0;i<3;i++) for(j=0;j<4;j++) } main() { int a,b; int *pointer_1,*pointer_2; scanf(“%d,%d”,&a,&b); pointer_1=&a; pointer_2=&b; if(a 装 int a[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(\ a[i][j]); ????????????2 订 if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; } ????????????5 printf(\); 线 } ????????????6
正在阅读:
C程序试题及答案01-24
一年级品德三级备课07-03
小学一年级语文德育渗透教育目标及实施建议10-31
电控防抱死制动系统ABS208-17
乡村生活作文800字07-16
喝原味酸奶能减肥吗?07-05
2017药物分析在线作业标准答案解析03-25
先秦时期的战争观07-04
word作业09-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 试题
- 答案
- 程序
- 斯坦福-比奈智商测试题、解答与说明
- 江安县人民政府文件
- 农机服务合作社项目可行性研究报告
- 刘迎丽浅谈隔代教育对孩子的影响
- 吉林省吉林市普通高中2014届高三上学期期末复习检测英语试题
- 2012安全评价师基础知识真题模拟(九)
- 耻感文化因素与当代青年道德人格重塑
- 县房地产管理局年度安全生产工作总结
- 装饰公司企业策划及发展规划
- 2016注册咨询工程师继续教育PPP政策解析及制度建设试卷及答案119分(DOC)
- 西南交大级土木工程学院暑期实习安排
- 后进生心理辅导个案
- 申报中学高级教师职称个人工作总结
- 深入贯彻落实两级职代会精神222
- 寮步镇凫山海威旧厂“三旧”地块改造方案
- 中波广播技术能手竞赛部分试题
- 归去来兮辞教案
- 传感器与电气检测(第三版)第一单元部分习题详解
- 诵念
- Java编程技术题与答案