C语言程序设计三 试题及答案 免费下载.docx
- 文档编号:10784039
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:19
- 大小:20.67KB
C语言程序设计三 试题及答案 免费下载.docx
《C语言程序设计三 试题及答案 免费下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计三 试题及答案 免费下载.docx(19页珍藏版)》请在冰豆网上搜索。
C语言程序设计三试题及答案免费下载
C语言程序设计(三)试题及答案免费下载2011年3月
注意:
所有答案都要写在答题卡上
一、单项选择题(20分,每题2分)
1.程序段
int *p,a;
p=&a;
a=10;
printf("%d",p);
的输出应为:
A)10 B)0 C)不能确定 D)语法错误
2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:
A)单向值传递 B)地址传递 C)相互传递 D)由用户指定方式
3.以下语句或语句组中,能正确进行字符串赋值的是。
A)char*sp;*sp="right!
"; B)chars[10];s="right!
";
C)chars[10];*s="right!
"; D)char*sp="right!
";
4.for(i=0;i<10;i++)
if(i〈=5) break;
则循环结束后i的值为
A)0 B)1 C)5 D)10
5.有以下程序
main()
{
intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。
A)m=123n=456p=789 B)m=123 n=456 p=789
C)m=123,n=456,p=789 D)123 456 789
6.C语言中,最基本的数据类型包括:
A)整型、实型、逻辑型 B)整型、字符型、数组
C)整型、实型、字符型 D)整型、实型、结构体
7.以下说法正确的是
A)C程序总是从第一个定义的函数开始执行
B)在C程序中,要调用的函数必须在main()函数中定义
C)C程序总是从main()函数开始执行
D)C程序的main()函数必须放在程序的开始部分
8.程序段
int*p,a=1;
p=&a;
*p=10;
a的值为:
A)1 B)10 C)不能确定 D)11
9.以下定义语句中,错误的是
A)inta[]={1,2}; B)char*a[3];
C)chars[10]="test"; D)intn=5,a[n];
10.假定int类型变量占用两个字节,有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是
A)3 B)6 C)10 D)20
二、填空题(30分,每空2分)
1.已知字符A的ACSII码值为65,以下语句的输出结果是
(1) 。
charch=’B’;
printf("%c%d\n",ch,ch);
2.’a’在内存中占
(2) 个字节,”a”在内存中占 (3) 个字节。
3.若有inta[3][2]={{1},{3,2},{4,5}};,则a[1][1]的值是 (4) 。
4.有以下程序,执行后输出结果是 (5) 。
main()
{
intt=1,i=5;
for(;i>=0;i--) t*=i;
printf("%d\n",t);
}
5.在循环语句中,break语句的作用是 (6) ,continue语句的作用是 (7) 。
6.下面程序段将字符数组b连接到数组a的后面。
main()
{
chara[20]=."Iam";
charb[]=."astudent.";
inti,j;
i=strlen(a);
for(j=__(8)___; b[j]!
='\0'; j++)
{
a[__(9)__]=b[__(10)__];
}
a[___(11)__]=___(12)___;
}
7.for(表达式1;表达式2;表达式3)
语句组
的执行顺序是先求解表达式1、再___(13)______、如果成立则执行___(14)____、然后___(15)______。
三、写出程序的运行结果(30分,每题10分)
1.写出程序运行后的输出结果。
intf(intb[][4])
{
inti,j,s=0;
for(j=0;j<4;j++)
{
i=j;
if(i>2)
i=3-j;
s+=b[i][j];
}
returns;
}
main()
{
inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf("%d\n",f(a));
}
2.写出程序运行后的输出结果
#include
main()
{
float x=2,y;
if(x<0)
y=0;
elseif(x<10)
y=1/x;
else
y=1;
printf(“%f\n”,y);
}
3.
(1)函数sub()的功能是什么?
(2)写出程序运行的输出结果。
long sub(int num)
{
int i;
long subsum=1;
for(i=1;i<=num;i++)
subsum*=i;
return(subsum);
}
main()
{
int i;
long sum=0;
for(i=1;i<=4;i++)
{
sum+=sub(i);
printf("sum%1d=%ld\n",i,sum);
}
}
四、编程(完形填空)(20分,每题10分)
1.写一个函数,实现将一个长度≤80的字符串按逆序存放。
解题要求:
该函数的唯一形参是字符串的起始地址。
void convert(charstring[])
{
int length,mid,i;
char temp;
length=____
(1)____(string);
mid=____
(2)_____;
for(____(3)____;i { temp=____(4)_____; string[i]=string[____(5)_____]; string[(length-1)-i]=temp; } } 2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。 main() { int yy,mm,day; scanf(“%d%d”,&yy,&mm); switch(__(6)___) { case1: case3: case5: case7: case8: case10: case12: day=__(7)___; break; case4: case6: case9: case11: day=__(8)___; break; case2: if(((yy%4==0)_(9)_(yy%100! =0))(10)_(yy%400==0)) day=29; else day=28; break; } } } 答案: 一、单项选择题(20分,每题2分) 1.C 2.A 3.D 4.D 5.A 6.C 7.C 8.B 9.D 10.D 二、填空题(30分,每空2分) (1) B66 (2) 1 (3) 2 (4) 2 (5) 0 (6) 跳出循环体 (7) 跳过循环体中剩余的语句而强行执行下次循环。 (8) 0 (9) i+j (10)j (11)i+j (12)'\0' (13)判断表达式2 (14)语句组 (15)求解表达式3 三、写出程序的运行结果(30分,每题10分) 1. 16 2. 0.500000 3. (1)函数sub()的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算: subsum*=i的次数。 (注: 非标准答案,表述相近既可) 实参i取值 返回值subsum的值 1 1 2 1*2=2 3 2*3=6 4 6*4=24 (2) 运行结果: sum0=1 sum1=3 sum2=9 sum3=33 四、编程(完形填空)(20分,每题10分) 1. (1)strlen (2)length/2 (3)i=1 (4)string[i] (5)(length-1)-i 2. (6)mm (7)31 (8)30 (9)&& (10)|| 注意: 所有答案都要写在答题卡上 一、单项选择题(20分,每题2分) 1.程序段 int *p,a; p=&a; a=10; printf("%d",p); 的输出应为: A)10 B)0 C)不能确定 D)语法错误 2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A)单向值传递 B)地址传递 C)相互传递 D)由用户指定方式 3.以下语句或语句组中,能正确进行字符串赋值的是。 A)char*sp;*sp="right! "; B)chars[10];s="right! "; C)chars[10];*s="right! "; D)char*sp="right! "; 4.for(i=0;i<10;i++) if(i〈=5) break; 则循环结束后i的值为 A)0 B)1 C)5 D)10 5.有以下程序 main() { intm,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。 A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 6.C语言中,最基本的数据类型包括: A)整型、实型、逻辑型 B)整型、字符型、数组 C)整型、实型、字符型 D)整型、实型、结构体 7.以下说法正确的是 A)C程序总是从第一个定义的函数开始执行 B)在C程序中,要调用的函数必须在main()函数中定义 C)C程序总是从main()函数开始执行 D)C程序的main()函数必须放在程序的开始部分 8.程序段 int*p,a=1; p=&a; *p=10; a的值为: A)1 B)10 C)不能确定 D)11 9.以下定义语句中,错误的是 A)inta[]={1,2}; B)char*a[3]; C)chars[10]="test"; D)intn=5,a[n]; 10.假定int类型变量占用两个字节,有定义: intx[10]={0,2,4};,则数组x在内存中所占字节数是 A)3 B)6 C)10 D)20 二、填空题(30分,每空2分) 1.已知字符A的ACSII码值为65,以下语句的输出结果是 (1) 。 charch=’B’; printf("%c%d\n",ch,ch); 2.’a’在内存中占 (2) 个字节,”a”在内存中占 (3) 个字节。 3.若有inta[3][2]={{1},{3,2},{4,5}};,则a[1][1]的值是 (4) 。 4.有以下程序,执行后输出结果是 (5) 。 main() { intt=1,i=5; for(;i>=0;i--) t*=i; printf("%d\n",t); } 5.在循环语句中,break语句的作用是 (6) ,continue语句的作用是 (7) 。 6.下面程序段将字符数组b连接到数组a的后面。 main() { chara[20]=."Iam"; charb[]=."astudent."; inti,j; i=strlen(a); for(j=__(8)___; b[j]! ='\0'; j++) { a[__(9)__]=b[__(10)__]; } a[___(11)__]=___(12)___; } 7.for(表达式1;表达式2;表达式3) 语句组 的执行顺序是先求解表达式1、再___(13)______、如果成立则执行___(14)____、然后___(15)______。 三、写出程序的运行结果(30分,每题10分) 1.写出程序运行后的输出结果。 intf(intb[][4]) { inti,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } returns; } main() { inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a)); } 2.写出程序运行后的输出结果 #include main() { float x=2,y; if(x<0) y=0; elseif(x<10) y=1/x; else y=1; printf(“%f\n”,y); } 3. (1)函数sub()的功能是什么? (2)写出程序运行的输出结果。 long sub(int num) { int i; long subsum=1; for(i=1;i<=num;i++) subsum*=i; return(subsum); } main() { int i; long sum=0; for(i=1;i<=4;i++) { sum+=sub(i); printf("sum%1d=%ld\n",i,sum); } } 四、编程(完形填空)(20分,每题10分) 1.写一个函数,实现将一个长度≤80的字符串按逆序存放。 解题要求: 该函数的唯一形参是字符串的起始地址。 void convert(charstring[]) { int length,mid,i; char temp; length=____ (1)____(string); mid=____ (2)_____; for(____(3)____;i { temp=____(4)_____; string[i]=string[____(5)_____]; string[(length-1)-i]=temp; } } 2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。 main() { int yy,mm,day; scanf(“%d%d”,&yy,&mm); switch(__(6)___) { case1: case3: case5: case7: case8: case10: case12: day=__(7)___; break; case4: case6: case9: case11: day=__(8)___; break; case2: if(((yy%4==0)_(9)_(yy%100! =0))(10)_(yy%400==0)) day=29; else day=28; break; }} } 答案: 一、单项选择题(20分,每题2分) 1.C 2.A 3.D 4.D 5.A 6.C 7.C 8.B 9.D 10.D 二、填空题(30分,每空2分) (1) B66 (2) 1 (3) 2 (4) 2 (5) 0 (6) 跳出循环体 (7) 跳过循环体中剩余的语句而强行执行下次循环。 (8) 0 (9) i+j (10)j (11)i+j (12)'\0' (13)判断表达式2 (14)语句组 (15)求解表达式3 三、写出程序的运行结果(30分,每题10分) 1. 16 2. 0.500000 3. (1)函数sub()的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算: subsum*=i的次数。 (注: 非标准答案,表述相近既可) 实参i取值 返回值subsum的值 1 1 2 1*2=2 3 2*3=6 4 6*4=24 (2) 运行结果: sum0=1 sum1=3 sum2=9 sum3=33 四、编程(完形填空)(20分,每题10分) 1. (1)strlen (2)length/2 (3)i=1 (4)string[i] (5)(length-1)-i 2. (6)mm (7)31(8)30(9)&&(10)||
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计三 试题及答案 免费下载 语言程序设计 试题 答案 免费 下载
![提示](https://static.bdocx.com/images/bang_tan.gif)