admin管理员组文章数量:1568418
2023年12月26日发(作者:)
班 级
C语言程序设计 试 题
学 号
(2008 /2009 学年 第 二 学期)
一 二 三 四 五 六 七 八 九 十 总分
姓 名
得分
一. 选择题(满分30分,每题2分)
1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。
A. a=b=c+8; B. a+=y+3;
装C. c++; D. a+b+c
2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。
A. 1 B. 2 C. –1 D. -2
3.执行下面程序:
#include "stdio.h"
void main()
订{
int a=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
printf(“%d,%d,%d”,a,b,c);
}
线 则输出结果是: A 。
A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5
4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。
A. a< >0 B. !a C. a=0 D. a
5. for (j=0;j<11;j++);循环结束后,j的值是 B 。
A. 12 B. 11 C. 10 D. 9
6. C语言中函数返回值的类型由 D 决定的。
A. return语句中的表达式类型 B. 调用该函数的主调函数的类型
C. 调用函数时临时决定 D. 定义函数时所指定的函数类型
7. 下列说法中正确的是 B 。
A 在调用用户自定义函数时,必须对其进行声明。
B 函数可以返回一个值,也可以什么值也不返回。
C 说明函数时,必须明确参数的类型和返回值。
D 在程序设计中空函数没有什么作用。
8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。
switch ( i )
{case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
A. 10 B. 11 C. 12 D. 13
9. 下列语句中不正确的字符串赋值或初始化的是 C 。
A. char str[10]={"strings"}; str[8]={'s','t','r','i','n ','g','s','0'};
C. char str[10]; str= "strings"; D. char str[]= "strings";
10. 有如下程序:
#include
void main()
{
int a=1,b=0,c=0;
if (a
if (b<0) c=0;
else c++;
printf (“%dn”,c);
}
该程序的运行结果是 D 。
A. 3 B. 2 C. 1 D. 0
11. 在函数调用,对参数传递的说法正确的是 A 。
A 实参和形参各占一个独立的存储单元。
B 实参和形参始终共用一个相同的存储单元。
C 可以由用户指定实参和形参是否共用一个存储单元。
D 可以由系统指定实参和形参是否共用一个存储单元
12. 以下正确的程序段是 C 。
A. char str1[ ]= "12345", str2[ ]= "abcdef"; strcpy(str1, str2);
B. char str[10], *st="abcde"; strcat(str, st);
C. char str[10]= " ", *st="abcde"; strcat(str, st);
D. char *st1="12345", *st2="abcde"; strcat(st1, st2);
13. 若有定义:int *p[4];则标识符p B 。
A. 是一个指向整型变量的指针
B. 是一个指针数组名
C. 是一个指针,它指向一个含有四个整型元素的一维数组
D. 说明不合法
班 级
学 号
姓 名
装
订
线
14. 以下程序的运行结果是 C 。
typedef union
{
long a[1];
int b[2];
char c[8];
} TEST;
TEST m;
main( )
{
printf(“%dn”,sizeof(m));
}
A. 32 B. 16 C. 8 D. 24
15. 设有以下结构体类型:
struct st
{
char name[8];
int num;
float s[4];
}student[50];
并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件中,以下不正确的形式是 C 。
(student,sizeof(struct st),50,fp);
B. fwrite(student,50*sizeof(struct st),1,fp);
C. fwrite(student,25*sizeof(struct st),25,fp);
D. for(i=0;i<50;i++)
fwrite(student+i,sizeof(struct st),1,fp);
得分
二、填空题(满分20分,每空2分)
1. 每个C语言编写的程序必须有一个,并且只能有一个 主 函数。
2. 设x和y均为int型变量,且x=1,y=2,则表达式3+x/y的值为 3 。
3. 若有定义:int a[ ]={2,4,6,8,10,12},*p=a;则*(p+1)的值是 4 。
4. 设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则y= 0x0F 。
5. 测试char型变量m的最高位数据是否为1的表达式是 a&0x80 。
6. 若x=2,y=-3则x&&y的结果是 1 。
7. 与二进制数101等值的十进制数为 5 。
8. 定义int i=1;执行语句 while(i++<5); 后,i的值为 6 。
9. 下面程序的运行结果为 22222 。
#include
void main()
{
int i=2,j=5,s;
s=i;
for (;--j;)
s=s*10+i;
printf (“%d”,s);
}
10. 写出程序的执行结果: i=10,j=11
main ( )
{ int i=0,j=0;
while (i<10)
i++;
while (j++<10) ;
printf(“i=%d, j=%dn”,i,j);
}
得分
三、读程序写结果(满分16分,每题4分)
1. 判断下面程序的运行结果。
#include
void main()
{
int a=0,b=1;
int fun(int a,int b);
printf("%dn",fun(a,b));
printf("%dn",fun(a,b));
}
int fun(int m, int n)
{
static s=1;
s++;
return(s*(m+n));
}
2
程序运行的结果为: 3 。
班 级
学 号
姓 名
2. 以下程序的输出结果是 3,2 。
#include "stdio.h"
struct chain
{
int x;
int y;
struct chain *p;
}m[2];
void main( )
{
m[0].x=1;
m[0].y=2;
装 m[1].x=3;
m[1].y=4;
m[0].p=&m[1];
m[1].p=m;
printf("%d,%dn",(m[0].p)->x,(m[1].p)->y);
}
订
3. 下面程序的运行结果是 7654321 。
#include
#include
void fun(char *w, int n)
线{
char t,*s1,*s2;
s1=w;
s2=w+n-1;
while(s1 { t=*s1; *s1=*s2; *s2=t; s1++; s2--; } } void main( ) { char p[]="1234567"; fun(p, strlen(p)); puts(p); } 4. 下面程序的输出结果为 4,2 。 #include "stdio.h" struct ks { int a; int *b; }s[4],*p; void main( ) { int n=1,i; printf("n"); for(i=0;i<4;i++) { s[i].a=n; s[i].b=&s[i].a; n=n+1; } p=&s[0]; p++; printf("%d,%dn",(++p)->a,(p++)->a); } 得分 四、程序设计(满分34分) 1. 编写一个程序,判断某一年是否为闰年。(6分) #include void main() { int year; printf(“input year=”); scanf(“%d”,&year); if ((year%4==0&&year%100!0)||year%400==0) printf(“%4d is a leap year n”,year); else printf(“%4d is not a leap year n”,year); } 装 订 班 级 学 号 姓 名 2. 用41131517公式求的近似值,直到最后一项的绝对值小于106为止,请编程实现。(8分) #include “math.h” void main() { int s;float n,t,pi; t=1; pi=0; n=1.0; s=1; while((fabs(t))>1E-6) { 装pi=pi+t; n=n+2; s=-s; t=s/n; } pi=pi*4; 订 printf(“pi=%10.6fn”,pi); } 3. 编写程序,利用子函数实现计算字符串的长度。(10分) 线 #include int length(char *s); void main( ) { char a[100]; int i; printf("Please input the string:n"); gets(a); i=length(a); printf("nThe length of string is %d",i); } int length(char *s) { char *p=s; while(*p) p++; return(p-s); } 4.将一个整数字符串转换为一个整数,如"-1234"转换为-1234。(10分) #include #include int chnum(char *p); void main( ) { char s[6]; int n; gets(s); if(*s=='-') n=-chnum(s+1); else n=chnum(s); printf("%dn",n); } chnum(char *p) { int num=0,k,len,j; len=strlen(p); for( ;*p!= '0';p++) { k=*p-'0'; j=(--len); while(j-->0) k=k*10; num=num+k; } return(num); }
版权声明:本文标题:C语言程序设计期末考试试题及答案 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1703525083a59139.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论