7-8-C语言上机考试试题2.doc
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
2.下载的文档,不会出现我们的网址水印。
3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
文档包含非法信息?点此举报后获取现金奖励!
下载文档到电脑,查找使用更方便
12
积分
还剩页未读,继续阅读
关 键 词:语言
上机
考试
试题
资源描述:
C语言上机考试试卷-2
2008.1.7
一、选择题 ( 评分标准 20 分,每小题2分)
1. 执行语句“a=b=3; printf(“%d,%d\n”, a<<2, b>>2);”后的输出结果为___A_____。
(A)12,0 (B)12,3 (C)false,true (D)true,false 2^3+2^2=12
★2. 若a是32位int整型变量,判断其最低2个二进位均为1的表达式为____A____。
位与运算,11得1,a的32位与3的32位,不足则补零。补它十几个零
(A)a&3==3 (B)a&3==11 (C)a&11==3 (D)a&11==11
3. 以“只读”方式打开文本文件c:\xy.text,下列语句中哪一个是正确的___B_____。
(A)fp=fopen(“c:\\xy.txt”, “a”); (B)fp=fopen(“c:\\xy.txt”, “r”);
(C)fp=fopen(“c:\\xy.txt”, “wb”); (D)fp=fopen(“c:\xy.txt”, “r”);
4. 为表示“a和b都不等于0”,应使用的C语言表达式是____D___。
(A)(a!=0) ‖(b!=0) (B)a‖b (C)!(a=0)&&(b!=0) (D)a&&b
5. 若x是单精度实型变量,k是基本整型变量,以下正确的输入语句是___A_____。
(A) scanf(“%f%d”, &x,&k); (B)scanf(“%f%d”, x,k);
(C)scanf(“%d%f”, &x,&k) (D)scanf(“%d%f”, x,k);
6. 下列运算中优先级最低的是___C_____。
(A)* (B)<< (C)= (D)->
7. 已知字符‘c’的ASC II为99,语句printf(“%d,%c”, ‘c’, ‘c’+1);输出为_____C___。
(A)99,c (B)99, 100 (C)99,d (D)语句不合法
8. 不正确的赋值或赋初值的方式是____D____。
(A)char str[6]={‘s’,’t’,’r’, ’i’,’n’,’g’}; (B)char str[10]=”string” 定义阶段可以
(C)char *str=”string”; (D)char str[10]; str=”string”;" 字符串不能直接赋值
9. C 语言程序中可以对程序进行注释,注释部分必须用符号____C_____括起来。
(A)‘{‘ 和’}’ (B)‘[‘和’]’ (C)“/*”和”*/” (D)“*/”和”/*”
10. ____D____是合法的用户自定义标识符。
(A)b-b (B)float (C)(D)_isw 必须是字符开头 如果是数字就不可以了
套数号
答案
2
1.A 2.A 3.B 4.D 5.A 6.C 7.C 8.D 9.C 10.D
二、判断题 ( 评分标准 20 分,每小题2分)
1. 表达式(3.6%2)符合C语言语法。 F
2. 在C程序中,用整数0表示逻辑值“假”。 T
3. 08是正确的整型常量。F
4. 设变量定义为char s[]=“hello”,则数组s中有6个元素。 T
5. 若x是单精度实型变量,表达式(x=10/4)的值是2.5。 10.0/4.0
6. 若变量已正确定义,表达式x=y=1符合C语言语法。 T
7. 表达式!(x>0‖y>0)等价于!(x>0)&&!(y>0)。
8. 表达式( 0x19<<1)&0x7的值是3。 F
9. 在C源程序中将语句“if(x==5) y++;”误写成“if(x=5) y++;”,将导致编译错误。 F
10. C的double类型数据可以精确表示任何实数。 F
套数号
答案
4
1. F 2. T 3. F 4. T 5. F 6. T 7. T 8. F 9. F 10. F
三、填空题 ( 评分标准 10 分,每小题2分)
1. 存储‘A’要占用____1____个字节(用数字表示)。
2. 设a=3.b=2.c=1.则a>b>c的值为___0_____。(用‘0’或‘1’表示)
3. 在C语言中,头文件的后缀名是___h_____。
4. 表达式 !!5的值是____1____。
5. 若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为___1_____。
参考答案:
第4套
(1)
1
(2)
0
(3)
h
(4)
1
(5)
1
四、程序改错题 ( 评分标准 20 分,每小题 5分 )
1. 该程序功能:输入m、n(要求输入数均大于0),输出它们的最小公倍数。
#include void main()
{ int m,n,k;
while(scanf("%d%d",&m,&n),m<0&&n<0);
for(k=m;k%n==0;) /*$1*/ for(k=m; k%n!=0;)
k=k+m;
printf("%d\n",k);
}
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句k%n==0; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入m、n(要求输入数均大于0),输出它们的最小公倍数。
参考答案:k%n!=0
运行样例2行
运行样例:8 6 结果:24
运行样例:6 8 结果:24
2. 该程序功能:输入x、eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。
/*一重循环*/
#include #include void main()
{ float x,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
t=-t*x/i; /*$1*/ t=-t*x/i++;
s+=t;
}while(fabs(t)>=eps);
printf("%f\n",s);
}
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句t=-t*x/i; 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入x、eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。
参考答案:t=-t*x/i++;
运行样例1行
运行样例:1 0.0001 结果:0.367882
3. 该程序功能:输入1个字符串,输出其中所出现过的大写英文字母。
/*循环,分支,库函数*/
#include void main()
{ char x[80],y[26]; int i,j,ny=0;
gets(x);
for(i=0;x[i]!=\0;i++)
if(x[i]>=A&&x[i]<=Z) {
for(j=0;j#include #include void main()
{
int n;
unsigned int i;
char *str;
scanf("%d\n",&n);
str=(char*)malloc(n);
gets(str);
for(i=0; i=z) /*$1*/ if(str[i]>=a&& str[i]<=z)
str[i]=str[i]-32 ;
puts(str);
}
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语句if(str[i]<=a&& str[i]>=z) 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
参考答案:if(str[i]>=a&& str[i]<=z)
运行样例1行
运行样例:5 Apple 结果:APPLE
五、程序填空( 评分标准 10 分,每小题5分)
1. 以下程序对test.txt进行读操作,并将读出的文本输出到屏幕上。
#include #include main()
{FILE *fp;
char ch;
/*$*/ fp = fopen("test.txt", "r");
if (fp == NULL)
{ printf("can not open test\n");
exit(0);
}
ch = fgetc(fp);
while(ch != EOF)
{putchar(ch);
ch = fgetc(fp);
}
fclose(fp);
}
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能对test.txt进行读操作,并将读出的文本输出到屏幕上。
把这一句删除:将test.txt文件放在考生目录下,并在其中存入“hello,welcome to the world of C!”字样。
参考答案: fp = fopen("test.txt", "r");
运行样例1行
运行结果1:hello,welcome to the world of C!
2. 输入6个整数 12 33 43 6 3 22 ,输出为:3 6 12 22 33 43 。
/* 形参和实参的传递 */
#include void sort(int *a,int n )
{ int i, k, m, t;
for(i=0; ia[m]
k=m;
t=a[k]; a[k]=a[i]; a[i]=t ;
}
}
void main( )
{ int k, a[6];
for(k=0; k<6; k++)
scanf("%d", &a[k]);
sort(a, 6) ;
for(k=0; k<6;k++)
printf("%d ", a[k]);
}
操作说明:
在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入6个整数12 33 43 6 3 22 ,输出结果:3 6 12 22 33 43。
参考答案:a[k]>a[m]
运行样例1行
运行样例1:12 33 43 6 3 22 结果:3 6 12 22 33 43
六、程序设计 ( 评分标准 20 分,每小题10分)
1. 操作说明:
设计程序:输入一个正整数n,求1+1/2!+1/3!+...+1/n!的值,要求定义并调出函数fact(n)计算与n的阶乘有关的计算式,函数返回值的类型是单精度浮点型,保留小数2位。
/*二重循环,求自然对数e的和函数*/
参考答案:
#include #include float fact(int n);
void main()
{
int n;
float sum;
while(scanf("%d",&n),n<0); /*排除n为负数的可能性*/
if(n==0)
sum=1; /*因为0!=1,但是函数调用进不去循环体,所以预先赋值*/
else
sum=fact(n);
printf("%2.2f",sum);
}
float fact(int n)
{
int i,j;
float sum=0,temp;
for(i=1;i<=n;i++)
{ temp=1;
for(j=1;j<=i;j++)
temp*=1/(float)(j);
sum+=temp;
}
return sum;
}
运行样例1行
运行样例1:3 结果:1.67
2. 操作说明:
设计程序:编写函数strcmpA(char * s1, char * s2),返回较长的字符串的长度减去较短的字符串的长度,相等返回0。
参考答案:
/*字符串操作*/
#include #include #include #include/*支撑strlen(*str)的函数,一定要加上*/
int strcmpA(char * s1, char * s2);
void main()
{ char str1[100],str2[100];
int result;
scanf("%s %s",str1,str2);
result = strcmpA(str1,str2);
printf("%d",result);
}
int strcmpA(char * s1, char * s2)
{
if(strlen(s1)>=strlen(s2))
return strlen(s1)-strlen(s2);
else
return strlen(s2)-strlen(s1);
}
运行样例2行
运行样例1:apple tree 结果:1
运行样例2:tree apple 结果:1
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:7-8-C语言上机考试试题2.doc
链接地址:https://www.renrendoc.com/p-55013798.html