当前位置:首页 » 招生排名 » 四川大学c语言期末考试答案

四川大学c语言期末考试答案

发布时间: 2023-05-12 04:39:00

① 四川C语言二级考试真题含答案

四川省普通高等学校计算机应用知识和能力
第二十九次等级考试
二级(C与C++语言) 笔 试 试 卷
时间: 2008年10月 18 日
上午 9:00—11:00
第一部分
软件技术基础
(共15分)
一、是非判断题(每小题1分,共10分)
( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )
1. 在设备管理中通道是处理输入、输出的软件。 ( 1 )
2. 从逻辑上可以把数据结构分为线性结构和非线性结构。 ( 2 )
3. 若无进程处于运行状态,则就绪队列为空。 ( 3 )
4. 在单处理器系统中,程序的并发执行,实质上是程序的交替执行。 ( 4 )
5. 分页存储管理中,页面不能映射到不连续的内存块中。 ( 5 )
6. 瀑布模型的突出缺点是不适应用户需求的变化。 ( 6 )
7. 栈和队列的共同特点是允许在端点之外处插入和删除元素。 ( 7 )
8. 为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。 ( 8 )
9. 在软件生存期内,能确定软件系统必须做什么和必须具备的功能阶段是编码。 ( 9 )
10.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。 ( 10 )

二、选择题(每小题1分,共5分)
1. 软件开发中,模块设计的原则是( 11 ) 。
11 (A) 低偶合、高内聚 (B) 高偶合、高内聚
(C) 高偶合、低内聚 (D) 低偶合、低内聚
2. 进程从运行状态进入就绪状态的原因可能是( 12 )。
12 (A) 时间片用完 (B) 等待某一事件
(C) 等待的事件已发生 (D) 被选中占有处理机
3. 队列的操作原则是( 13 )。
13 (A) 先进后出 (B) 先进先出
(C) 只进不出 (D) 只出不进
4. 以下( 14 )不是实时操作系统的特点。
14 (A) 高可靠性 (B) 及时响应
(C) 高效性 (D) 通用性
5. 程序流程图是用于描述结构化方法中 ( 15 )工作阶段的工具。
15 (A) 可行性分析 (B) 程序编码
(C) 详细设计 (D) 需求分析

第二部分
C与C++语言程序设计
(共85分灶历)
一、单项选择题 ( 每小题1分,共10分 )
1. 下列关于C++语言类的描述中错误的是( 16 ) 。
16 (A) 类用于描述事物的属性和对事物的操作
(B) 类与芦辩敏类之间通过封装而具有明确的独立性
(C) 类与类之间必须是平等的关系,而不能组成层次结构
(D) 类与类之间可以通过一些方法进行通信和陪枝联络
2. C++中,已知有如下定义:
const int D=5;
int i=1;
long int f=0;
char c=15;
则下列选项错误的是( 17 )。
17 (A) ++i; (B) D--; (C) c++; (D) --f;
3. 下面关于类和对象的描述中,错误的是 ( 18 )。
18 (A) 类就是C语言中的结构体类型,对象就是C语言中的结构体变量
(B) 类和对象之间的关系是抽象和具体的关系
(C) 对象是类的实例,一个对象必须属于一个已知的类
(D) 类是具有共同行为的若干对象的统一描述体
4. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是( 19 )。
19 (A) p=5; (B) *q=5; (C) q=p; (D) *p=5;
5. 设有定义:char s[20]= "ab\101\ncd"; 则sizeof(s)和strlen(s)的值为( 20 )。
20 (A) 6,6 (B) 20,6 (C) 20,7 (D) 20,10
6. 在C语言的函数中( 21 )。
21 (A) 必须有形参 (B) 形参必须是变量名
(C) 可以有也可以没有形参 (D) 数组名不能作为形参
7. 下列程序输出结果是( 22 )。
# include "stdio.h"
# define SQR(x) x*x
void main()
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
22 (A) 10 (B) 1 (C) 9 (D) 0
8. 已知学生记录描述如下
struct student
{ int no;
char name[20];
char sex;
struct
{ int year;
int month;
int day;
}birth;
};
struct student s;
设变量s中“生日”是“1982年5月29日”,对“生日”的正确赋值方式是( 23 )。
23 (A) year=1982;month=5;day=29;
(B) birth.year=1982;birth.month=5;birth.day=29;
(C) s.year=1982;s.month=5;s.day=29;
(D) s.birth.year=1982;s.birth.month=5;s.birth.day=29;
9. 有下列程序输出结果是 ( 24 )。
# include <stdio.h>
void dig(char *s)
{
char *p=s;
while(*s)
*s>='0' && *s<='9'?s++:(*p++=*s++);
*p='\0';
}
void main()
{
char *str="A1B2C3";
dig(str);
puts(str);
}
24 (A) ABC (B) A1B2C3 (C) A1B2C (D) ABC3
10. 在下面的选项中,赋值语句错误的是 ( 25 ) 。
25 (A) i++; (B) a=(b=(c=2,d=3));
(C) a=a<a; (D) a=a*b=2;

二、读程序回答问题 ( 每个选择3分,共45分 )
1. 读下面程序并回答问题:
# include <stdio.h>
void fun1(int x,int y)
{
int t;
t=x; x=y; y=t;
}
void fun2(int x[])
{
int t;
t=x[0]; x[0]=x[1]; x[1]=t;
}
void main()
{
int a[2]={1,2},b[2]={1,2};
fun1(b[0],b[1]);fun2(a);
printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);
}
(1) 下列说法错误的是( 26 )。
26 (A) 数组名作为函数参数进行传递,传递的是数组的首地址
(B) 数组名作为函数参数时,形参数组与实参数组共用内存空间
(C) 普通变量作为函数参数进行传递,实参与形参之间发生的是单向值传递
(D) 数组名作为函数参数时,传递的是数组元素的值
(2) 程序的运行结果是( 27 )。
27 (A)1,2,1,2 (B) 1,2,2,1 (C) 2,1,1,2 (D) 2,1,2,1
2. 读程序并回答问题。
# include <stdio.h>
int fun()
{
static int c=0;
c++;
return c;
}
void main(int argc,char *argv[])
{
int x,i,j;
for(i=1;i<argc;i++)
for(j=0;argv[i][j]!='\0';j++)
x=fun();
printf("%d\n",x*argc);
}
(1)若程序经编译连接后生成可执行文件2_3.exe,若键入以下命令行:
2_3 abcd 123
则程序的运行结果为( 28 )。
28 (A) 3 (B) 21 (C) 9 (D) 0
(2)若将函数fun中的static去掉,变为int c=0; 程序经编译后连接生成可执行文件2_3.exe,若键入以下命令行:
2_3 abcd 123
则程序的运行结果为( 29 )。
29 (A) 3 (B) 30 (C) 22 (D) 10
3. 读程序并回答问题
# include <stdio.h>
# include <string.h>
void fun(char *s,int p1,int p2)
{
char t;
while(p1<p2)
{
t=*(s+p1); *(s+p1)=*(s+p2); *(s+p2)=t;
p1++; p2--;
}
}
void main()
{
char str[10];
int i;
for(i=0;i<9;i++)
str[i]='A'+i;
str[i]='\0';
puts(str);
fun(str,0,strlen(str)-1);
puts(str);
}
(1)第一个puts(str)的输出结果为( 30 )。
30 (A) AHCFEDGBI (B) IBGDEFCHA
(C) ABCDEFGHI (D) IHGFEDCBA
(2)第二个puts(str)的输出结果为( 31 )。
31 (A) AHCFEDGBI (B) IBGDEFCHA
(C) ABCDEFGHI (D) IHGFEDCBA
4. 阅读下面程序,回答问题。
void main()
{
int n,m,s=0,t=1;
scanf("%d",&m);
for(n=1;n<=m;n++)
{
t*=n;
s+=t;
}
printf("%d\n",s);
}
程序的功能是( 32 )
32 (A) 实现1的阶乘至m的阶乘的求和
(B) 求m的阶乘
(C) 1到m的求和
(D) 实现1至m-1的阶乘的求和
5. 读程序,回答问题。
# include <stdio.h>
void main()
{
char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c') s[j++]=s[i];
s[j]='\0';
puts(s);
}
程序运行时输入cctv10,其输出结果为( 33 )。
33 (A) cc (B) tv10 (C) ctv10 (D) tv10cc
6. 有下列程序:
# include <stdio.h>
char func(char *s)
{
char *p=s;
while(*p!='\0')
p++;
return p-s;
}
void main()
{
printf("\n%d\n",func("Hello!"));
getch();
}
(1)程序的运行结果是( 34 )。
34 (A) 3 (B) Hello!6 (C) 无输出 (D) 6
(2)指针变量的运算不可以( 35 )。
35 (A) 指针变量加整形变量 (B) 指针变量减整形变量
(C) 指针变量加指针变量 (D) 指针变量减指针变量
7. 以下是一个C++程序,读程序写出程序运行结果。
# include <iostream.h>
void main()
{
int num=0,i=8;
do
{ i--;
num++;
}while(--i);
cout<<num<<endl;
}
程序的运行结果是( 36 )。
36 (A) 2 (B) 0 (C) 4 (D) 5
8. 有下列程序:
# include <stdio.h>
void main()
{ char c='A';
int k=0;
do
{ switch(c++)
{ case 'A': k++; break;
case 'B': k--;
case 'C': k+=2; break;
case 'D': k%=2; continue;
case 'E': k*=10;break;
default: k/=3;
}
k++;
}while(c<'G');
printf("k=%d\n",k);
getch();
}
(1)程序输出结果是( 37 )。
37 (A) k=3 (B) k=4 (C) k=2 (D) k=0
(2)本程序中continue的作用( 38 )。
38 (A) 与break一样 (B) 不起任何作用
(C) 开始下一次循环 (D) 出现语法错误
9. 有下列程序
int w=3;
int fun(int k)
{
if(k==0) return w;
return(fun(k-1)*k);
}
void main()
{
int w=10;
printf("%d\n",fun(5)*w);
}
输出结果是( 39 )。
39 (A) 360 (B) 3600 (C) 1080 (D) 1200
10. 有下列程序
void main()
{
char ch[2][5]={"6934","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
输出结果是( 40 )。
40 (A)6385 (B) 69825 (C) 63825 (D) 693825

注意:① 请把下面“程序填空”中各小题答案写在主观题答题纸上
② 每一个空只填一个语句或一个语句所缺的部分内容

三、程序填空 ( 每空2分,共30分 )
1. 函数fun的功能是:找出N行M列二维数组元素中的最大值,并作为函数值返回,最大值的行列下标通过形参指针带回main函数中。请填空。
# include <stdio.h>
# define N 3
# define M 4
int fun(int a[N][M],int *row,int *col)
{
int i,j,r,c;
r=c=0;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>① ) { r=i; c=j; }
② ;
*col=c;
③ ;
}
void main()
{
int a[N][M]={1,2,3,4,5,6,7,8,9,10,11,12};
int row,col,max;
max=fun(a,&row,&col);
printf("max=%d,row=%d,col=%d\n",max,row,col);
}
2. 程序的功能是:求出分数序列2/1,3/2,5/3,8/5,13/8……前20项之和,请填空。
# include <stdio.h>
void main()
{ double x=2,y=1,t,s=0;
int i;
for(i=1;i<=20;i++)
{
s=① ;
t=② ;
x=③ ;
y=t;
}
printf("s=%f\n",s);
}
3. 有5个学生的成绩需要保存在文件score.dat文件中,保存格式如下:
姓名,年龄,成绩<CR> 请填空。
# include <stdio.h>
void main()
{ FILE *fp;
int i;
char name[80];
int age;
float score;
fp=fopen(① ,"w");
for(i=0;i<5;i++)
{ printf("请输入第%d个学生的信息\n",i);
printf("姓名:");
scanf("%s",name);
printf("年龄:");
scanf("%d",&age);
printf("成绩:");
② ;
fprintf(fp,"%s,%d,%f\n",name,age,score);
}
③ ;
}
4. 下列程序的功能是:从5个字符串中找出最长的那个字符串。请填空。
# include <stdio.h>
# include <string.h>
# define N 5
# define M 81
char *fun(char (*sq)[M])
{ int i;
① ;
sp=sq[0];
for(i=1;i<N;i++)
if(② ) sp=sq[i];
return sp;
}
void main()
{ char str[N][M],*longest;
int i;
printf("please enter 5 string:");
for(i=0;i<N;i++)
gets(str[i]);
for(i=0;i<N;i++)
puts(str[i]);
longest=③ ;
printf("\nThe longest string:");
puts(longest);
}
5. 下面程序的功能是:由25人坐成圆圈,先从任一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1,2,3,4,…),数到5的倍数的出圈,剩下的继续报数,求最后出圈的编号。
# include <stdio.h>
void main()
{
int a[26],j,n,count;
for(j=1;j<=25;j++) a[j]=j;
j=1;
count=0;
① ;
do
{ if(a[j]!=0)
{ n++;
if(n%5==0)
{ ② ;
if(count==24) printf("%d\n",j);
count++;
}
}
j++;
if(j>25) j=1;
}
while(③ );
}

② 大一期末考C语言试题求解答

第一题:#include<stdio.h>

voidmain()

{

inta[10],b[9],i=0;

for(;i<10;i++)

{

printf("请输入第%d个数",i+1);

scanf("%d",&a[i]);

}

for(i=1;i<10;i++)

b[i-1]=a[i]-a[i-1];

for(i=0;i<9;i++)

{

if(i%3==0)printf(" ");

printf("%d ",b[i]);

}

}

运行结果:

学习是要用心的,多动脑,多思考学到的东西才是自己的。喔,对了给分森液哟!!!!!

③ c语言考试,求答案,急!!急!!

一、选择题((1)—(40)每题1分,(41)—(50)每题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1) 在32位计算机中,一个字长所占的字节数为( )。
A) 1
B) 2
C) 4
D) 8

(2) 与十进制数511等值的十六进制数为( )。
A) 1FF
B) 2FF
C) 1FE
D) 2FE

(3) 能将高级语言编写的源程序转换成目标程序的是( )。
A) 编程程序
B) 编译程序
C) 解释程序
D) 链接程序

(4) 在计算机系统中,存储一个汉字的国标码所需要的字节数为( )。
A) 1
B) 2
C) 3
D) 4

(5) 下列带有通配符的文件名中,能表示文件ABC.TXT的是( )。
A) *BC.?
B) A?.*
C) ?BC.*
D) ?.?

(6) 在多媒体计算机系统中,不能用以存储多媒体信息的是( )。
A) 光缆
B) 软盘
C) 硬盘
D) 光盘

(7) DOS命令“COPY/?”的功能是( )。
A) 将当前盘当前目录中的所有文件复制到当前盘的根目录下
B) 将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下
C) 以提示方式复制文件
D) 显示COPY命令的帮助信息

(8) 在Windows环境下,若要将当前活动窗口存入剪贴板,则可以按( )。
A) Ctrl+PrintScreen键
B) Ctrl+PrintScreen键
C) Shift+PrintScreen键
D) PrintScreen键

(9) 在Windows环境下,单击当前应用程序窗口中的“关闭”按钮,其功能是( )。
A) 将当前应用程序转为后台运行
B) 退出Windows后再关机
C) 退出Windows后重新启动计算机
D) 终止当前应用程序的运行

(10) 在Windows环境中,粘贴按钮是( )。
A) ctrl+A
B) ctrl+C
C) ctrl+X
D) ctrl+V

(11) 以下叙述中正确的是( )。
A) 构成C程序的基本单位是函数
B) 可以在一个函数中定义另一个函数
C) main()函数必须放在其它函数之前
D) 所有被调用的函数一定要在调用之前进行定义

(12) 以下选项中合法的实型常数是( )。
A) 5E2.0
B) E-3
C) .2E0
D) 1.3E

(13) 以下选项中合法的用户标识符是( )。
A) long
B) _2Test
C) 3Dmax
D) A.dat

(14) 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量‘\101’是( )。
A) 字符A
B)字符a
C)字符e
D)非法的常量

(15) 以下非法的赋值语句是( )。
A) n=(i=2,++i);
B)j++;
C) ++(i+1);
D)x=j>0;

(16) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( )。
A)6.500000
B)6
C) 5.500000
D) 6.000000

(17) 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是( )。
A) scanf(“%2d%2d%2d”,&i,&j,&k);
B) scanf(“%d %d %d”,&i,&j,&k);
C) scanf(“%d,%d,%d”,&i,&j,&k);
D) scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);

(18) 与数学式子 对应的C语言表达式是( )。
A) 3*x^n(2*x-1)
B) 3*x**n(2*x-1)
C) 3*pow(x,n)*(1/(2*x-1))
D) 3*pow(n,x)/(2*x-1)

(19) 设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是( )。
A)printf(“x=%d\n”,x);
B) printf(“x=%1d\n”,x);
C)printf(“x=%8dL\n”,x);
D)printf(“x=%LD\n”,x);

(20) 若有以下程序:
main()
{ int k=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);
}
执行后的输出结果是( )。
A) 8,6
B) 8,3
C) 6,4
D) 7,4

(21) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是( )。
A) 6
B) 0
C) 2
D) 1

(22) 有一函数, ,以下程序段中不能根据x值正确计算出y值的是( )。
A) if(x>0) y=1; B) y=0;
else if(x==0) y=0; if(x>0) y=1;
else y=-1; else if(x<0) y=-1;
C)y=0; D)if(x>=0)
if(x>=0); if(x>0) y=1;
if(x>0) y=1 ; else y=0;
else y=-1; else y=-1;

(23) 以下选项中,与k=n++完全等价的表达式是( )。
A) k=n,n=n+1
B) n=n+1,k=n
C) k=++n
D) k+=n+1

(24) 以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{ int n,k;
float score ,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{ scanf(“%f”,&score); sum+=score;}
ave=sum/4.0;
printf(“NO%d:%f\n”,n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。
A) sum=0.0;
B) sum+=score;
C) ave=sun/4.0;
D) printf(“NO%d:%f\n”,n,ave);

(25) 有以下程序段
int n=0,p;
do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);
此处do—while循环的结束条件是( )。
A) P的值不等于12345并且n的值小于3
B) P的值等于12345并且n的值大于等于3
C) P的值不等于12345或者n的值小于3
D) P的值等于12345或者n的值大于等于3

(26) 有以下程序
main()
{ int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf(“%d\n”,m);
}
程序运行后的输出结果是( )。
A) 1
B) 2
C) 3
D) 4

(27) C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( )。
A) void
B) int
C) float
D) double

(28) 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。
A) p=q;
B) *p=*q;
C) n=*q;
D) p=n;

(29) 有以下程序
float fun(int x,int y)
{ return(x+y); }
main()
{ int a=2,b=5,c=8;
printf(“%3.0f\n”,fun(int)fun(a+c,b),a-c));
}
程序运行后的输出结果是( )。
A) 编译出错
B) 9
C) 21
D) 9.0

(30) 有以下程序
void fun(char *c,int d)
{ *c=*c+1;d=d+1;
printf(“%c,%c,”,*c,d);
}
main()
{ char a=’A’,b=’a’;
fun(&b,a); printf(“%c,%c\n”,a,b);
}
程序运行后的输出结果是( )。
A)B,a,B,a
B) a,B,a,B
C) A,b,A,b
D) b,B,A,b

(31) 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i
for(j=i+1,j
if(a[i]
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=o;i<10;i++) print(“%d,”,aa[i]);
printf(‘\n”);
}
程序运行后的输出结果是( )。
A)1,2,3,4,5,6,7,8,9,10
B) 10,9,8,7,6,5,4,3,2,1,
C) 1,2,3,8,7.6.5.4.9,10
D) 1,2,10,9,8,7,6,5,4,3

(32) 有以下程序
int f(int n)
{ if (n==1) return 1;
else return f(n-1)+1;
}
main()
{ int i,j=0;
for(i=i;i<3;i++) j+=f(i);
printf(“%d\n”,j);
}
程序运行后的输出结果是( )。
A) 4
B) 3
C) 2
D) 1

(33) 有以下程序
main()
{ char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’}; int i,j;
i=sizeof(a); j=strlen(a);
printf(“%d,%d\b”i,j);
}
程序运行后的输出结果是( )。
A)9,9
B)8,9
C)1,8
D)9,8

(34) 以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
void reverse(int a[ ],int n)
{ int i,t;
for(i=0;i{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
reverse(b,8);
for(i=6;i<10;i++) s+=b[i];
printf(“%d\n”,s);
}
程序运行后的输出结果是( )。
A) 22
B) 10
C) 34
D) 30

(35) 有以下程序
main()
{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0
for(i=0;i<4;i++) s+=aa[i][1];
printf(“%d\n”,s);
}
程序运行后的输出结果是( )。
A) 11
B) 19
C) 13
D) 20

(36) 有以下程序
#include
main()
{ char *p=“abcde\Ofghjik\0”;
printf(“%d\n”,strlen(p));
}
程序运行后的输出结果是( )。
A) 12
B) 15
C) 6
D) 5

(37) 程序中头文件typel.h 的内容是:
#define N 5
#define M1 N*3
程序如下:
#define “type1.h”
#define M2 N*2
main()
{ int i;
i=M1+M2; printf(“%d\n”,i);
}
程序编译后运行的输出结果是:( )。
A) 10
B) 20
C) 25
D) 30

(38) 有以下程序
#include
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen(“d1.dat”“w”);
fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”j);
fclose(fp);
fp=fopen(“d1.dat”, “r”);
fp=fscanf(fp,“%d%d”,&k,&n); printf(“%d%d\n”,k,n);
fclose(fp);
}
程序运行后的输出结果是( )。
A) 20 30
B) 20 50
C) 30 50
D) 30 20

(39) 以下叙述中错误的是( )。
A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B) 在程序结束时,应当用fclose函数关闭已打开的文件
C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D) 不可以用FILE定义指向二进制文件的文件指针

(40) 有以下程序
#include
main(int argc,char *argv[])
{ int i,len=0;
for(i=1;iprintf(“%d\n”,len);
}
程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:
ex1 abcd efg 10<回车>
则运行的结果是:( )。
A) 22
B) 17
C) 12
D) 9

(41) 有以下程序
int fa(int x)
{ return x*x; }
int fb(int x)
{ return x*x*x; }
int f(int (*f1)(),int (*f2)(),int x)
{ return f2(x)-f1(x); }
main()
{ int i;
i=f(fa,fb,2); printf(“%d\n”,i);
}
程序运行后的输出结果是( )。
A) -4
B) 1
C) 4
D) 8

(42) 有以下程序
int a=3;
main()
{ int s=0;
{ int a=5; s+=a++; }
s+=a++;printf(“%d\n”,s);
}
程序运行后的输出结果是( )。
A) 8
B) 10
C) 7
D) 11

(43) 有以下程序
void ss(char *s,char t)
{ while(*s)
{ if(*s==t) *s=t-‘a’+’A’;
s++;
}
}
main()
{ char str1[100]=“abcddfefdbd”,c=’d’;
ss(str1,c); printf(“%s\n”,str1);
}
程序运行后的输出结果是( )。
A) ABCDDEFEDBD
B) abcDDfefDbD
C) abcAAfefAbA
D) Abcddfefdbd

(44) 有以下程序
struct STU
{ char num[10]; float score[3]; };
main()
{ struct stu s[3]={{“20021”,90,95,85},
{“20022”,95,80,75},
{“20023”,100,95,90}},*p=s;
int i; float sum=0;
for(i=0;i<3,i++)
sum=sum+p->score[i];
printf(“%6.2f\n”,sum);
}
程序运行后的输出结果是( )。
A) 260.00
B) 270.00
C) 280.00
D) 285.00

(45) 设有如下定义:
struck sk
{ int a;
float b;
}data;
int *p;
若要使P指向data中的a域,正确的赋值语句是( )。
A) p=&a;
B) p=data.a;
C) p=&data.a;
D) *p=data.a;

(46) 有以下程序
#include
struct NODE
{ int num; struct NODE *next; };
main()
{ struct NODE *p,*Q,*R;
p=(struct NODE*)malloc(sizeof(struct NODE));
q=(struct NODE*)malloc(sizeof(struct NODE));
r=(struct NODE*)malloc(sizeof(struct NODE));
p->num=10; q->num=20; r->num=30;
p->next=q;q->next=r;
printf(“%d\n”,p->num+q->next->num);
}
程序运行后的输出结果是( )。
A) 10
B) 20
C) 30
D) 40

(47) 若有以下说明和定义
typedef int *INTEGER;
INTEGER p,*q;
以下叙述正确的是( )。
A) P是int型变量
B) p是基类型为int的指针变量
C) q是基类型为int的指针变量
D) 程序中可用INTEGER代替int类型名

(48) 有以下程序
main()
{ unsigned char a,b,c;
a=0x3; b=a|0x8; c=b<<1;
printf(“%d%d\n”,b,c);
}
程序运行后的输出结果是( )。
A) –11 12
B) –6 –13
C) 12 24
D) 11 22

(49) 有以下程序
#include
main()
{ char *p,*q;
p=(char*)malloc(sizeof(char)*20); q=p;
scanf(“%s%s”,p,q); printf(“%s%s\n”,p,q);
}
若从键盘输入:abc def<回车>,则输出结果是:( )。
A) def def
B) abc def
C) abc d
D) d d

(50) 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
#include
void f(char p[][10],int n)
{ char t[20]; int i,j;
for(i=0;ifor(j=i+1;jif(strcmp(p[i],p[j])<0)
{ strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}
}
main()
{ char p[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};int i;
f(p,5); printf(“%d\n”,strlen(p[0]));
}
程序运行后的输出结果是( )。
A) 6
B) 4
C) 5
D) 3

二、填空题(每空2分,共40分)
请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。

1、计算机软件分为系统软件和应用软件,操作系统属于 [1] 。

2、在DOS环境下,代表键盘和显示器的设备文件名为 [2] 。

3、支持Internet基本服务的协议是 [3] 。

4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为 [4] 。

5、某微型机的运算速度为2MIPS,则该微型机每秒执行 [5] 条指令。

6、设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf(“%d, ” [6] );
printf(“%d\n”, [7] 。);

7、以下程序运行后的输出结果是 [8] 。
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d,%d \n”,x,y);
}

8、以下程序运行后的输出结果是 [9] 。
main()
{ int x=15;
while(x>10 && x<50)
{ x++;
if(x/3){x++;break;}
else continue;
}
printf(“%d\n”,x);
}


9、有以下程序:
#include
main()
{ char c;
while((c=getchar( ))!=’?’) putchar(--c);
}
程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为 [10] 。

10、以下程序运行后的输出结果是 [11] 。
void fun(int x,int y)
{ x=x+y;y=x-y;x=x-y;
printf(“%d,%d,”,x,y); }
main()
{ int x=2,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
}

11、以下函数的功能是计算s=1+ + +……+ ,请填空。
double fun(int n)
{ double s=0.0,fac=1.0; int i;
for(i=1,i<=n;i++)
{ fac=fac [12] ;
s=s+fac;
}
return s;
}


12 fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。
#include
#define N 100
int fun(int(*a)[N])
{ int row,col,max,min;
for(row=0;row{ for(max=a[row][0],col=1;colif( [13] )max=a[row][col];
if( row==0)min=max;
else if( [14] )min=max;
}
return min;
}

13、函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
#include
int sstrcmp(char *s,char *t)
{ while(*s&&*t&& *s== [15] )
{ s++;t++;}
return [16] ;
}

14、下面程序的运行结果是 [17] 。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf(“%d %d\n”,i1,i2);
}

15、下面程序的运行结果是: [18] 。
void swap(int *a,int *b)
{ int *t;
t=a; a=b; b=t;
}
main()
{ int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}

16、下面程序的运行结果是: [19] 。
typedef union student
{ char name[10];
long sno;
char sex;
float score[4];
}STU;
main()
{ STU a[5];
printf(“%d\n”,sizeof(a));
}

(17) 函数sstrcmp()的功能是对两个字符串进行比较。当s 所指字符串和t所指字符相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
#include <stdio.h>
int sstrcmp(char *s,char *t)
{while(*s&&*t&&*s==【19】)
{s++;t++; }
return 【20】;
}

④ 急求C语言考试题答案(我拥有的积分不高,所以给不了多少,但我真的急求,大哥大姐帮帮忙)

2.多个源文件的C程序编译和连接:
1)首先分别编辑、编译file1.c和file2.c ;
2)在TC下编辑一个项目文件,扩展名为.PRJ;
如: 文件内容——c:\\zyc\\cprg\\file1.c
c:\\zyc\罩银\cprg\\file2.c
文件内容指出了要参加联调的源程序文件名
3)编译运行

4.结果:
main:x=5 y=1 n=1
func:x=6 y=21 n=11
main:x=5 y=1 n=11
func:x=8 y=31 n=21

5.
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
max=a;
else
max=b;
if(c>max)
max=c;
printf("max=%d",max);

}

6.
#include<stdio.h>
void main(){
float x,y;
printf("请输入x的值:\n");
scanf("%f",&x);
if(x<1)
printf("y的值是:%f",x);
else if(1<=x<10){
y=2*x-1;
printf("y的信旁值是:%f",y);
}
else {
y=3*x-11;
printf("y的值是:%f",y);
}
}

7题
57
5 7
67.856400,-789.124023
67.856400 ,-789.124023
67.86,-789.12,67.864,-789.1240,67.856400,-789.124023
6.78564e+01, -7.9e+02
A,65, 101, 41
1234567,4553207, d687
65535,177777,ffff,-1
COMPUTER, COM

8.结果9

二、编程:
1.
#include<stdio.h>
void main()
{
int a,s;
scanf("%d",&s);
if(s==100)
a=9;
else
a=s/10;
switch(a)
{
case 0:printf("E\n");break;
case 1:printf("E\n");break;
case 2:printf("E\n");break;
case 3:printf("E\n");break;
case 4:printf("E\n");break;
case 5:printf("E\物坦宴n");break;
case 6:printf("D\n");break;
case 7:printf("C\n");break;
case 8:printf("B\n");break;
case 9:printf("A\n");break;
default:printf("error\n");
}}

2.
#include<stdio.h>
#define N 10
main()
{
int i,j,k;
int a[N];
printf("\nplease input %d datas:\n\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
for(j=0;j<N-i;j++)
if(a[j]<a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
printf("\n\nthe sortde numbers are:\n\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
}

祝你好运!

⑤ 求c语言试题及答案!急啊!

c语言考试题(一)

一、 单项选择题(每题2分,共20分)
1、以下选项中属于C语言的数据类型是( )
A.复数型 B.逻辑型 C.集合型 D.双精度型
2、一个C程序的执行是从( )
A.main()函数开始,直到main()函数结束 B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束 D.main()函数开始,直到最后一个函数结束
3、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是( )
A.3 B.0C.-12D.9
4、若有 char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是( )。
A.cd\0e B.'c''d' C.cd D.cd e
5、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;则下列表达式不是4的是 ( )。
A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3]
6、以下有宏替换不正确的叙述( ).
A.宏替换不占用运行时间 B.宏名无类型
C.宏替换只是字符串替换 D.宏名必须用大写字母表示
7、执行char str[10]=”Ch\nina”; strlen(str)的值是( )
A.5 B.6 C.7 D.9
8、下面程序的输出结果是:( )
#define POWER(x) (x*x)
main()
{int i=4; printf("%d",POWER(i-2)); }
A. -9 B. -7 C. 5 D. -6
9、在定义int a[3][4][2];后,第10个元素是( )
A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1]
10、下面程序的输出结果是:( )
typedef struct
{long x[2];<br>short y[4];<br>char z[8];<br>}MYTYPE;
MYTYPE a;
main()
{ printf("%d\n",sizeof(a));}
A. 2 B. 8 C. 14 D. 24
二、 填空题(每空1分,共11分)
1、字符串"A"在内存中占用的字节数为 。
2、C语言中的标识符只能由字母、下划线和 组成。
3、若有定义语句“ int a=25,b=14,c=19;",以下语句的执行结果是
if(a++<=25&&b--<=2&&c++) printf("***a=%d,b=%d,c=%d\n",a,b,c);
else printf("###a=%d,b=%d,c=%d\n",a,b,c);
4、有如下定义a[]="B\172\\\'a%%";则执行语句printf("%d",strlen(a));的结果为 。
5、若有定义:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i<4;i++) p[i]=&a[i*3];则*(*(p+1)+2)的值为 ,*p[2]的值为 。若数组的首地址为2000,则p[1]指向的地址为 。
6、设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y 的结果是 。
7、设x、y都是int型变量,初值都为1,则执行表达式:--x&&y++后,y的值为 。
8、语句for(i=1;i==10;i++)continue;循环的次数是 。
9、以下程序输出 。
main()
{enum em {em1=3,em2=1,em3};
char *aa[]={"AA","BB","CC","DD"}; printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
三、 写程序结果(每题5分,共35分)

1、#include
main()
{int x,y,z;<br>x=1,y=2,z=3; x+=y+=z;<br>printf("1:%d\n",z+=x>y?x++:y++);<br>x=0x02ff;y=0xff00;<br>printf("2:%d\n",(x&y)>>4|0x005f);<br>x=y=z=-1; ++x||++y&&++z;<br>printf("3:%d,%d,%d\n",x,y,z);<br>}
2、#define f(x) x*x
main()
{int a=6,b=2,c;<br>c=f(a+b)/f(b);<br>printf(“%d\n”,c);<br>}
3、fun(int k)
{ printf("%d",k);
if(k>0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf("\n"); }
4、#include
main()
{int x=1,y=0;<br>switch(x)<br>{ case 1:<br>switch(y)<br>{ case 0:printf(“first\n”);break;<br>case 1:printf(“second\n”);break;<br>}
case 2:printf(“third\n”);
}
}
5、#include
main()
{ int k=4;
func(k); func(k);
}
func(int a)
{ static int m=0;
m+=a;
printf("%d",m);
}
6、struct st
{ int x;
int *y;
}*p;
int s[]={30,20};
struct st a[]={1,&s[0],2,&s[1]};
main()
{ p=a; printf("%d,",p->x);
printf("%d\n",++(*(++p)->y));
}
7、假定在当前盘目录下有2个文本文件,其名称和内容如下:
文件名: a1.txt a2.txt
内容: ABCDEF# abcdef#
#include "stdio.h"
main()
{FILE *fp;<br>void fc();<br>if((fp=fopen("a1.txt","r"))==NULL)<br>{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
if((fp=fopen("a2.txt","r"))==NULL)
{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
}
void fc(fp1)
FILE *fp1;
{char c;<br>while((c=fgetc(fp1))!='#')putchar(c);<br>}

四、 程序填空(每空2分,共14分)

1、下面程序求矩阵a的主对角线元素之和,请填空。
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18};
int sum=0,i,j;
for(i=0;i<3; ① )
for(j=0; ② ;j++)
if(i= =j) sum=sum+ ③ ;
printf("sum=%d\n",sum);
}
2、下列函数coy把字符数组S2中的全部字符复制到字符数组S1中, 复制时’\0’也要复制过去,’\0’后面的字符不用。
coy(char s1[],char s2[])
{ int i;
for(i=0;s2[i]!= ① ;i++)
s1[i]=s2[i];
② ;
}
3、下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。
main()
{ char a[]="students",t; int i,j;
for(i=1;i<7;i+=2)
for(j=i+2;j<8; ① )
if( ② )
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
}

c语言考试题(二)

一. 填空题(每题2分,共20分)
1. C语言基本数据类型有:_______________________________;
构造类型有:_____________________________________。 P.13

2. C语言源程序注注释符号是:________________________________,
为表明层次结构,C语言源程序通常采用_____________________格式编写。P.4

3. 源程序TEST.C经编译产生的目标文件是:________________________;
经连接处理后,产生的可执行文件是:__________________________。

4. strlen(“1234 \ 0xy)的值为:_____________________________;
sizeof(float)的值为:____________________________

5. 二维数组a[10] [50]最后一行的首地址为:_________________________;
最后一个元素的首地址为:____________________________________。

6. C标准库函数中,数学函数的原型在:________________头文件中,自定义头文件D :\ MYC \ MY . H应如何包含到源程序文件中:_________________________。P.130

7. 已知函数定义为:int stat(inta,float *p)
{……………}
则此函数的两个参数类型分别是_______________ 、 _____________________。

8. 设int x,y,z=4;
x=y=++z;
x=(y>z)?x+2;x++;则x的值是:_________;
设int a=0,b=0,c=0;c=++a | | b++; ,则a、b、c值分别是:_____________。

9. 与if (x=0) 等价的写法是if ( ! x );
判断两个(float)变量x,z是否相等一般:if ( fabc(x-z)<1e-6 )。

10.已知赋值语句zhang.year=1985;可判断zhang是_______________类型的变量;
定义文件指针的C语句是:_________________________________。

二. 单项选择题 (每题1分,共10分)
1. 组成C程序的基本单位是____________________________。
A.函数 B.标识符 C.表达式 D.语句

2. 设int类型的数据长度为2字节,则该类型数据的取值范围是__________________。
A.0至65536 B.0至65535
C.-32767至32768 D.-32768至32767

3. 在C语言中,逻辑值“真”是用_____________________表示的。
A.预定义为真值的宏 B.非零数
C.正数 D.非零整数

4. C语言对于嵌套if语句规定else总是与_____________________匹配。
A.与最外层的if B.与之前最近的if
C.与之前最近的不带else的if D.与最近的{ }之前的if

5. 数组定义char a[10]={`a`,`b`,`c`}:包括了几个元素____________________。
A.3 B.9 C.4 D.10

6. 数组名作为实参传给被调用的函数时,形参获得的是_____________________。
A.该数组第一个元素的值 B.该数组所有元素的值
C.该数组第一个元素的首地址 D.该数组所有元素的首地址

7. 为表示关系x ≥ y ≥z,正确的C语言表达式为_________________________。
A.(x>=>y>=z) B.(x>=y)AND(y>=z)
C.(x>=y)&&(y>=z) D.(x>y)&(y>=z)

8. 根据定义int a[ ]={1,2,3},i,*p=a; 从语法分析_________________是不正确的。
A. a[p-a] B.*(&a) C.p D.*(*(a+i))

9. 若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为____________________________。
A.12 34 B.12,34 C.1234 D.12:34

10.union uex {int i;float f;char c;}ex;则sizeof(ex)的值是____________________。
A.4 B.5 C.6 D.7

三. 分析程序,写出运行结果。(每题4分,共20分)
1. 源程序如下,运行时假定键盘输入字符串为``2004``
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字符型数字*/
{
if (c>=`0`&&c<=`9` )
n = n*10 + c- `0` ; /*数字*/
}
printf(“value=%d|n” ,n);
}
结果为: value=2004 。

2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398,397,396,395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89,93,73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i<9;i++)
if(score>iMax)
{
iPos=i;
iMax=score[iPox];
}
printf(“num=%d,score=%d”,num[iPos];score[iPos]);

结果为: num=311, score=93 。

3. 源程序如下,运行时假定键盘输入数据为:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i,a[10];
int *p;
p=a;
for(i=0;i<10;i++)
scanf(“%d“,p++);
for(p=a;p< SPAN>;p++)
if (*p%2)printf(“%3d”,*p);
}
结果为: 1 3 5 7 9 。

4. 源程序如下,两次运行,分别输入数据13和21
#include
#include
void main(void)
{
int n,s;
scant (“%d”,&n);
s=panan( n);
if(s==1)printf(“yes\n”);
else printf(“no\n);
}
int panan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) retum(1);
else retum(0);
}
结果为 yes
no

5.源程序如下,运行时假定键盘输入字符为:AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
gets(str);
for(i=0;str!=`\0`;i++)
if(str>=`a`&&str<=`z`) str-=32;
else if (str>=`A`&&str<=`Z`) str+=32;
puts(str);
}
结果为: aXbYcZ 。

四. 下列程序中每个划线处有一个错误,改正划线 中的错误,使其实现题目要求。(每体4分,共20分)
1. 求 s=1+2+3+、、、、、、、+100
include 改正为_________________________。
void sum (void) 改正为_________________________。
{
int s,i;
for (s=0,i=1;i<=100;i++)
{
s=s+ i ++; 改正为__________________________。
}
printf (“s=%f”,s) 改正为__________________________。
}

2. 源程序实现求x
#include
double pow(float . int) 改正为_________________________。
void main(void)
{
int i, n;
float x;
scanf (“%f,%d”,&x,&n);
for (i=1; i<9;i++)
printf(“%d,%e\n”, i, pow(i,x);
} 改正为______________________。
double v v pow(float x, int n)
{
int i;
double p=0; 改正为______________________。
for (i=1; i< i++)>改正为_______________________。
p*=x;
retum(p);
}

3. 源程序实现排升序。
#include
void main(void)
{
int i, j, iMin, a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp;
for (i=0; i<9; i++)
{
iMin=0; 改正为_______________________。
for (j=i+1; j<10;j++)
if(a[iMin]< iMin="j;">改正为_______________________。

if (iMin==i) 改正为_________________________。
{ iTemp=a;
a[iMin]=a; 改正为_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i<10; i++)
printf(“%4d”, a):
}

4. 源程序为求平均值。
#include
void main(void)
{
int i, sum; 改正为____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i<10; i++) 改正为____________________。
{
scanf(“%d”, p++);
sum+= *p; 改正为____________________。
}
avg = sum/ 10; 改正为___________________。
printf(“avg=%f”, avg);
}
5. 源程序求 eX=1+x+x2/2!+……+xn/n!前n+1项之和
#include
void main(void>
{
float exp , x , t;
int i, n;
scanf(“%f, %d”,&x, &n);
t=0; 改正为___________________。
exp=1.0;
for(i=1 ; i<=n; i++)
{
if(t<1e-6) loop; 改正为__________________。
t+=x/i; 改正为___________________。
exp*=t; 改正为___________________。
}
printf(“\n%15.6f”, exp);
}
五. 编程题 (每题6分,共30分)
1. 根据以下程序框架,编写子函数,实现交换两个整型变量x和y的值。
#include
void swap (int *, int *);
void main (void)
{
int x, y;
scanf(“%d, %d”, &x, &y);
swap( &x, &y);
printf(“%d, %d”, x, y);
}
void swap( )
{

}

2. 设某班人数36人,参加C语言考试,用一维数组score[36]存放考试成绩,已给出一部分程序,完善以下程序,使其实现统计并输出不及格人数及百分比。
#include
void main (void)
{ int i;
float scoer[36], precent;
int count=0;
for (i=0; i<36; i++)
{
scanf(“%f”, &score);

}

3. 完善以下程序使其实现由键盘任意输入一串字符,统计其中大写字母个数iA、小写字母个数ia、其他字符个数iother。
#include
#include
void main (void)
{
char str [80];
int i, iA=0, ia=0, iother=0;

}

4. 完善以下程序使其实现求方阵主和辅对角线元素之和及其转置矩阵,设方阵用二维数组a表示,转置矩阵用t表示,sl和s2表示主和辅对角线元素之和。
#include
void main(void)
{
int a[3] [3]={1,3,5,7,9,11,13,15,11};
int i, j, s1, s2;
int t[3] [3];
printf(“%d, %d,\n”,s1, s2);
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf(“%3d”, t [j]);
}

5. 已知字符数组str[80],编写返回指针的子函数,实现在其中查找字符ch首次出现的位置。
#include
#include
#include
char *lstrchar(char*, char);
void main(void)
{
char c, *p, str[80];
gets (str);
scanf(“%c”, &c);
p=lstrchar(str,c);
if(p==NULL) printf(“char %c not found\n”c);
else printf(“The position is %d”, p-str);
char “lstrchar( )
{ }

历年全国计算机二级考试c语言真题及答案
http://jsj.lsxy.com/UploadFiles/20064222324839.rar

⑥ C语言期末考试试题(谭浩强版)

C语言期末考试试题
2008年04月12日 星期六 00:22

一 选择题(24分,每小题2分)
1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。

A 存放读入数据项的存储区
B 存放读入数据的地址或指向此地址的指针
C 一个指向所读文件的文件指针
D 一个整形变量,代表要读入的数据项总数

2.以下程序的输出结果为( )。
main( )
{
int i=010,j=10;
printf("%d,%d\n",i++,j--);
}

A 11,9
B 9,10
C 8,10
D 9,9

3.设a为int型变量,执行下列赋值语句后,a的取值分别是( )。
a=125.534;
a=20.0/3;
a=(int)125.521%4;
a=5<<2;

A 125,6,31,1
B 125,6,1,20
C 125,6.666666,31,20
D 125.534,6.666666,2,20

4.设i和k都是int类型,则for循环语句( )。
for(i=0,k=-1;k=1;i++,k++)
printf("****\n");

A 循环结束的条件不合法
B 循环体一次也不执行
C 循环体只执行一次
D 是无限循环

5.以下程序的输出结果为( )。
main( )
{
char c;
int i;

for(i=65;i<68;i++)
{
c=i+32;
switch(c)
{
case 'a':
case 'b':
case 'c':printf("%c,",c);break;
default:printf("end");
}
}
}

A a,b,c,end
B a,a,a,end
C a,a,a,
D a,b,c,

6.函数调用语句:fseek(fp,-10L,2);的含义是( )。
A 将文件位置指轿竖衡针从文件末尾处向文件头的方向移动10个字节
B 将文件位置指针从当前位置向文件头的方向移动10个字节
C 将文件位置指针从当前位置向文件末尾方向移动10个字节
D 将文件位置指针移到距离文件头10个字节处

7.以下程序的输出结果为纤掘( )。
main( )
{
int i=0,j=0;
while(s1[i]!='\0')
i++;
while(s2[j]!='\0')
s1[i++]=s2[j++];
s1[i]=0;

printf("%s\n",s1);
}

A side
B country
C sidetry
D countryside

8.下列说法不正确的是( )。

A 主函数main中定义的变量在整个文件或程序中有效
B 不同函数中,可以使用相同名字的变量
C 形式参数是局部变量
D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效

9.在下列程序段中,枚举变量 c1的值是( )。
enum color { red,yellow,blue=4,green,white}c1;
c1=yellow;
c1=white;

A 1
B 3
C 5
D 6

10.设有说明 int (*ptr)();其中标识符ptr是( )。

A 是一个指向整形变量的指针
B 是一个指针,它指向一个函数值是int的函数
C 是一个函数名
D定义不合法

11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为( )。

A int p;
B int (*p)[n];
C int *p[n];
D int (*p)( );

12.具有相同类型的指针类型变量p与闭做数组a,不能进行的操作是( )。

A p=a;
B *p=a[0];
C p=&a[0];
D p=&a;

二 判断对错,对的划“√”,错的划“×”(20分,每小题2分)

1.参加位运算的数据可以是任何类型的数据。 ( )

2.若有定义和语句:
int a;
char c;
float f;
scanf("%d,%c,%f",&a,&c,&f);

若通过键盘输入:10 A 12 5
则a=10,c=‘A’,f=12.5。 ( )

3.C语言把文件看作是一个字符(字节)的序列。 ( )

4.若有宏定义:
#define S(a,b) t=a;a=b;b=t
由于变量t没定义,所以此宏定义是错误的。 ( )

5.在Turbo C中,下面的定义和语句是合法的:
file *fp;
fp=fopen("a.txt","r"); ( )

6.若有定义:
char s[ ]="china";
则Turbo C系统为数组s开辟6个字节的内存单元。 ( )

7.若有定义和语句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)
sum+=a[i][2-i];
则sum=21。 ( )

8.若有定义和语句:
struct student
{
int num;
char name[10];
float score;
}
s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);
输出结果是1。 ( )

9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。 ( )

10.在Turbo C中,此定义和语句是合法的:
enum aa{ a=5,b,c}bb;
bb=(enum aa)5; ( )

三 写出下列程序的运行结果(36分,每小题6分)
1.
main( )
{
int i=29,j=6,k=2,s;
s=i+i/j%k-9; //s=i+(i/j)%k-9
printf(“s=%d\n”,s);
}

2.
main( )
{
int x=31,y=2,s=0;
do
{
s-=x*y;
x+=2;y-=3;
}
while(x%3==0); //先执行,后判断
printf(“x=%d\ty=%d\ts=%d\n”,x,y,s);
}

3.
main( )
{
int a[6]={10,20,30,40,50,60},i;
invert(a,0,5);
for(i=0;i<6;i++)
printf(“%d,”,a[i]);
printf(“\n”);
}

invert(int s[ ],int i,int j) //倒置
{
int t;
if(i<j)
{
invert(s,i+1,j-1); //函数自身的嵌套调用,形成循环
t=s[i];
s[i]=s[j];
s[j]=t;
}
}

4.
#include <stdio.h>

main()
{
char str[ ]="The C program",c;
int i;
for(i=2;(c=str[i])!='\0';i++)
{
switch(c)
{
case 'g': ++i; break; //由于++i,跳过了g后面的1个字母
case 'o': continue;
default: printf(“%c”,c); continue;
}
printf(“*”);
}
printf(“\n”);
}

5.
struct w //结构体
{
char low;
char high;
};

union u //共用体
{
struct w byte;
short word;
}uw;

main( )
{
int result;
uw.word=0x1234;

printf("word value:%04x\n",uw.word);
printf("high byte:%02x\n",uw.byte.high);
printf("low byte:%02x\n",uw.byte.low);

uw.byte.low=0x74;

printf("word value:%04x\n",uw.word);
result=uw.word+0x2a34;
printf("the result:%04x\n",result);
}

6.
main()
{
char *s2="I love China!",**s1=&s2;
char *s3,c,*s4="w";
s3=&c;
*s3='H';
s2=s2+2;
printf("%s\t%c\t%s\t%c\n",s2,*s3,s4,**s1);
}

四 阅读下列程序,在 处填入适当内容,使程序完整(20分,每个空2分)

1.百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?
main( )
{
int hb,hm,hl,n=0;
for(hb=0;hb<=100;hb+=(1))
for(hm=0;hm<=100-hb;hm+=(2))
{
hl=100-hb- (3) ;
if(hb/3+hm/2+2*(3)==100)
{
n++;
printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);
}
}
printf("n=%d\n",n);
}

2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#define N 10

char str[N];

void main()
{
int i,flag;

for(flag=1;flag==1;)
{
scanf("%s",str);
flag=0;
printf("\n");
}

sort(___(4)___);

for(i=0;i<N;i++)
{
printf("%c",str[i]);
}
printf("\n");
}

sort(char str[N]) //冒泡排序
{
int i,j;
char t;

for(j=1;j<N;j++)
for(i=0;i<10-j;i++)
if(str[i]>str[i+1])
{
t=str[i];
____(5)____;
____(6)____; //交换位置
}
}

3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)

例如,矩阵为:
3 0 0 3
2 5 7 3
1 0 4 2
则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。

add(int m,int n,int arr[])
{
for(i=0;i<m;i=i+m-1)
for(j=0;j<n;j++)
sum=sum+____(7)____;
for(j=0;j<n;j=j+n-1)
for(i=1;____(8)____;i++)
sum=sum+arr[i*n+j];
return(sum);
}

4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。
#define N 10
main()
{
void maxmin(int arr[],int *pt1,int *pt2,int n);
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a;
p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}

void maxmin(int arr[],int *pt1,int *pt2,int n)
{
int i;
*pt1=*pt2=arr[0];
for(i=1;i<n;i++)
{
if(arr[i]>*pt1)
____(9)____ ;

if(arr[i]<*pt2)
____(10)____ ;
}
}

答案
一 选择题(24分,每小题2分)
1.( B ) 2.( C ) 3.( B )
4.( D ) 5.( D ) 6.( A )
7.( D ) 8.( A ) 9.( D )
10.( B ) 11.( C ) 12.( D )
二 判断对错,对的划“√”,错的划“×”(20分,每小题2分)
1.( × ) 2.( √ )
3.( √ ) 4.( × )
5.( × ) 6.( √ )
7.( √ ) 8.( × )
9.( √ ) 10.( √ )
三 写出下列程序的运行结果(36分,每小题6分)
1.s=20
2.x=35 y=-4 s=-29
3.60,50,40,30,20,10,
4.e C pr*am
5.word value:1234
6.love China! H w l
high byte:12
low byte:34
word value:1274
the result:3ca8
四 阅读下列程序,在 处填入适当内容,使程序完整(20分,每个空2分)
1.(1) 3 (2) 2 (3)hm hl
2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t
3.(7) arr[i*n+j] (8) i<m-1
4.(9) *ptr1=arr[i] (10) *ptr2=arr[i]

⑦ 求一份大一c语言考试试卷,加答案

附件上传失败...

C语言期末考试题及答案(1)

1、构成C语言的基本单位是___B____。
过程?
函数?
语句?
命令?
2、设x为整型变量,不能正确表达数学关系:5<x<10的c语言表达式是__B___。
5
x>5&&x<10?
x==6||x==7||x==8||x==9?
!(x<=5)&&(x<10)?
3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为__D___。
&&、||、!?
||、&&、!?
&&、!、||?
!、&&、||?
4、下面语句中,正确的是__D___。
printf("%c\n","student");?
printf("%c\n","c");?
printf("%s\n",&a);?
printf("%s\n","hello");?
5、对于for(表达式1;;表达式3)可以理解为__B___。
for(表达式1;0;表达式3)?
for(表达式1;1;表达式3)?
for(表达式1;表达式1;表达式3)?
for(表达式1;表达式3;表达式3)?
6、执行下面程序段的结果是__B___。 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); }
a=1,b=1?
a=2,b=1?
a=1,b=0?
a=2,b=2?
7、执行下面程序段的结果是__D___。 int x=0; do { printf(“%2d”,x--); }while(x);
打印出321?
打印出23?
不打印任何结果?
陷入死循环?
8、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___。 If(x>y) if(y>z)x=y; else z=y;
7?
6?
5?
4?
9、如果一个函数被说明为static,那么__B___。
该函数只能被main函数调用?
该函数能被当前文件的函数调用,但不能被其他文件的函数调用?
该函数不能被当前文件的函数调用,可以被其他文件的函数调用?
任何文件的函数都可以调用该函数?
10、下面关于局部变量的描述中,错误的是__D___。
函数的局部变量的有效范围只能在本函数?
函数的形式参数也是局部变量?
局部变量的名称不能和函数同名称?
不同的函数中不能定义相同名称的局部变量?
11、下列初始化字符数组的语句中,错误的是__A___。
char str[5]="hello";?
char str[]={'h','e','l','l','o','\0'};?
char str[5]={"hi"};?
char str[100]="";?
12、引用数组元素时,数组下标可以是__D___。
整型常量?
整型变量?
整型表达式?
以上均可?
13、 已知:char str[10],*p=str; 下面的语句中正确的是__B___。
str="ABC";?
p="ABC";?
*str="ABC";?
*p="ABC";?
14、下面语句中,错误的是___D__。
int i;int *p;p=&i;?
int i,*p;p=&a;?
int i,*p=&a;?
int i,*p;*p=i;?
15、下面对于结构体类型的描述正确的是__A___。
结构体类型的大小为各成员变量所占内存的总和?
结构体类型变量与简单数据类型变量的引用规则一致。?
结构体类型的大小为其成员中所占内存空间最大的变量的大小?
结构体类型的大小为其最后一个成员中所占内存空间的大小?
16、C语言规定:在一个源程序中,main函数的位置____C____。
必须在最开始?
必须在系统调用的库函数的后面?
可以任意?
必须在最后?
17、表达式18/4*sqrt(4.0)/8值的数据类型是 ___C____。
int?
float?
double?
不确定?
18、在c语言中,char型数据在内存中的存储形式是 ___D___。
补码?
反码?
原码?
ASCII码?
19、阅读以下程序,当输入的数据形式为:25,13,10<CR>时,正确的输出结果为___D___。 main() { int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n",x+y+z); }
x+y+z=48?
x+y+z=35?
x+z=35?
不能确定?
20、有如下程序 void main() { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(“%f\n”,y); } 该程序的输出结果是( C )。
0.000000?
0.250000?
0.500000?
1.000000?
21、判断char型变量s是否为小写字母的正确表达式是__C____。
'a'<=s<='z'?
(s>='a')&(s<='z')?
(s>='a')&&(s<='z')?
('a'<=s)and('z'>=s)?
22、执行以下语句后,y 的值为___A___。 int x,y,z; x=y=z=0; ++x || ++y && ++z;
0?
1?
2?
不确定值?
23、有如下程序段: int number=0; while(number++<=3) printf(“%d\n”,number++); 则正确的执行结果是___C___。
2 3 4?
0 1 2?
1 3?
2 4?
24、有如下程序 void main() { int n=9; while(n>6) { n--; printf(“%d”,n); } } 该程序段的输出结果是__B___。
987?
876?
8765?
9876?
25、要使以下程序段输出10个整数,请在空格中填入一个整数。 for(i=0;i<=___B___;printf("%d\n",i+=2));
15?
18?
20?
10?
26、设函数fun的定义形式为: fun(char ch,float x){…} 则以下对函数fun的调用语句中正确的是___B___。
fun(“abc”,3)?
t=fun(‘D’,5)?
fun(‘ab’,3)?
fun(‘78’,1)?
27、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 Main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。
s=s+n;return s;?
s=s+i;return s;?
return s;?
return s+=I;?
28、设函数fun的定义形式为 int fun(int a[],int n) { int s=0,i=0; for(i=0;i<n;i++)s+=a[i]; return s; } main() { int a[10]={1,2,3,4,5}; printf("sum=%d", fun(&a[2],2)); } 则程序的运行结果为___C___。
3?
5?
7?
9?
29、若有说明:int a[10];则对数组元素的正确引用是___D____。
a[10]?
a[3,5]?
a(5)?
a[10-10]?
30、以下不正确的定义语句是___B___。
double x[5]={2.0,4,0,6,0,8,0,10.0};?
int y[5]={0,1,3,5,7,9};?
char c1[]={'1','2','3','4','5'};?
char c2[]={'\x10','\xa','\x8'};?
31、下面程序的运行结果是___B____。 #include "stdio.h" main() { char str[]="SWLIA",c; int k; for(k=0;(c=str[k])!='\0';k++) { switch(c) { case 'I':++k;break; c
SWA?
SW*?
SW*A?
SW?
32、以下能正确进行字符串赋值操作的是___D___。
char s[5]={"12345"};?
char s[5]={'1','2','3','4','5',‘6’};?
char *s;*s="12345";?
char *s="12345";?
33、以下程序段的运行结果是___C___。 Char a[ ]="program", *p; p=a; while (*p!='g') { printf("%c", *p-32); p++; }
PROgram?
PROGRAM?
PRO?
proGRAM?
34、若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是__C____。
*pc[0]代表的是字符串"aaa"的首地址?
*pc[0]代表的是字符'a'的首地址?
pc[0]代表的是字符串"aaa"的首地址?
pc[0]代表的是字符'a'的首地址?
35、下列程序的运行结果是___B___。 #include <stdio.h> #include <string.h> void f (char *s, int n) { char a,*q1,*q2; q1=s;q2=s+n-1; while(q1<q2) { a=*q1++; *q1=*q2--; *q2=a;} } main() { char b[]="ABCDEFG"; f(b, s
GAGGAGA?
AGAAGAG?
GFEDCBA?
AGADAGA?
36、定义如下的结构体描述同学信息 struct Student { unsigned long id; char name[30]; char class[30]; }s; 假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为___C__。
id=1002; name=黎明; class=冶金3班;?
id=1002; name=”黎明”; class=”冶金3班”;?
s.id=1002; s.name=”黎明”; s.class=”冶金3班”;?
s.id=1002; s.name=黎明; s.class=冶金3班;?
37、用来描述C程序中注释的是__C___。
//?
?
**?
38、下列变量中合法的定义是__A___。
short _a=2-1?
long if=0xabcL?
double 1_d=1.5e2?
float a=1.5e2.7?
39、当c的值不为0时,能够将c的值赋给变量a和b的是__C___
c=b=a?
(a=c)||(b=c)?
(a=c)&&(b=c)?
a=c=b?
40、设有以下程序段,执行后的输出结果是___B__ int x=100,y=200; printf("%d",(x,y));
100?
200?
100,200?
编译出错
C语言期末考试题及答案(2)

1、若执行下面的程序时从键盘输入10,则输出是__B__ main( ) { int a; scanf(“%d”,&a); if(a++>10) printf(“%d\n”,++a); else printf("%d\n",a--); }
12?
11?
10?
9?
2、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x);
打印出321?
打印出23?
不打印任何结果?
陷入死循环?
3、执行与句:for(n=0;n++<4; ); 后,变量n的值是__C__。
3?
4?
5?
不定?
4、以下关于循环的描述中,错误的是__D___。
可以用for语句实现的循环一定可以用while语句实现?
可以用while语句实现的循环一定可以用for语句实现?
可以用do…while语句实现的循环一定可以用while语句实现?
do…while语句与while语句的区别仅仅是关键字while的位置不同?
5、下面的描述错误的是__C__。
函数可以有多个形式参数?
函数可以没有返回值?
函数内可以嵌套定义函数?
函数可以被其他函数调用?
6、函数返回值的类型是由__A__决定的。
定义函数时指定的返回类型?
函数中return语句的表达式类型?
主调函数的实际参数类型?
主调函数的返回值类型?
7、定义了一维int型数组a[10]后,下面错误的引用是__B__。
a[0]=1;?
a[10]=2;?
a[0]=5*2;?
a[1]=a[2]*a[0];?
8、定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B__。
24?
25?
18?
17?
9、下面语句中,错误的是__D__。
int i; int *p; p=&i;?
int i,*p; p=&a;?
int i,*p=&a;?
int i,*p; *p=i;?
10、 已知int型二维数组a[3][4],数组元素a[1][2]的地址不能表达为__C__。
&a[1][2]?
a[1]+2?
*a[1]+2?
*(a+1)+2?
11、C语言中,5种基本数据类型的存储空间长度的排列顺序为___A___。
char
char=int
char
char=int=long int<=float
12、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 ___B___。
7?
8?
6?
2?
13、若有说明语句:char c='\72';则变量c ___A___。
包含1个字符?
包含2个字符?
包含3个字符?
说明不合法,c的值不确定?
14、若x,y均定义为整型,z定义为double型,以下不合法的scanf函数调用语句是___C___。
scanf("%d%lx,%le",&x,&y,&z);?
scanf("%2d * %d%lf",&x,&y,&z);?
scanf("%x%*d%o",&x,&y,&z);?
scanf("%x%o%6.2f",&x,&y,&z);?
15、若输入字符串:abcde<回车>,则以下while循环体将执行___A___次。 while((ch=getchar())=='e') printf("*");
1次?
死循环?
0次?
5次?
16、执行下面的程序段后,k的值是___C___。 k=1;n=263; do{k*=n%10;n/=10;}while(n);
3?
63?
36?
2?
17、下面程序段中循环的执行次数是___B___。 a=10;b=0; do{b+=2;a-=2+b;}while(a>=0);
10?
3?
5?
4?
18、下面程序段的运行结果是__D____。 x=2; do{printf("*");x--;}while(!x==0);
*?
***?
没有输出?
**?
19、下面程序段的运行结果是___B___。 i=1;s=1;a=0; do{a=a+s*i;s=-s;i++;}while(i<=10); printf("%d",a);
2?
-2?
3?
0?
20、有如下程序 void main() { int a=2,b=-1,c=2; if(a) if(b<0) c=0; else c++; printf("%d\n",c); } 该程序的输出结果是___A___。
0?
1?
2?
3?
21、程序中对fun函数有如下说明 void fun(); 下面说明是错误的是___B___。
fun函数无返回值?
fun函数的返回值可以是任意的数据类型?
fun函数没有形式参数?
void 可以省略?
22、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 main() { printf("The sum=%d\n",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i<=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。
s=s+n; return s;?
s=s+i; return s;?
return s;?
return s+=i;?
23、 有以下程序 int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf()__A___
4,3,7?
3,4,7?
5,2,7?
2,5,7?
24、若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是___B___。
2?
3?
4?
无确定值?
25、判断字符串s1是否大于字符串s2,应当使用___D____。
if(s1>s2)?
if(strcmp(s1,s2))?
if(strcmp(s2,s1)>0)?
if(strcmp(s1,s2)>0)?
26、当运行以下程序时,从键盘输入:AhaMA Aha<CR> <CR>表示回车,则下面程序的运行结果是___A____。 #include "stdio.h" main() { char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\0') { if(s[i]==c)
ahAMa?
AhAMa?
AhAMa ahA?
ahAMa ahA?
27、以下程序执行后a的值为___C____。main( ) { int a,m=2, k=1, *p=&k; a=p!=&m; printf("%d\n",a); }
-1?
0?
1?
2?
28、以下能正确读入字符串的程序段是____C___。
char *p;scanf("%s", p);?
char str[10];scanf("%s", &str);?
char str[10], *p;p=str; scanf("%s", p);?
char str[10], *p=str;scanf("%s", p[1]);?
29、若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是___B___。
i=x[1][1] ?
i=*(*(x+1))?
i=*(*(x+1)+1)?
i=*(x[1]+1)?
30、下面程序的运行结果是____A___。 # include <stdio.h> # include <string.h> fun(char *s) { char t,*a,*z; a=s; z=s+strlen(s)-1; while(a++<z--) { t=*a++; *a=*z--; *z=t;} } main() { char *p; p="a
abdddfg?
afcdebg?
gbedcfa?
gfedcba?
31、用来描述C程序中注释的是__C___
/ /?
?
* *?
32、对于"xy\n\102\\\'"字符串的长度是__B___
7?
6?
12?
13?
33、已知:int x=10;执行语句x-=x+x;后x的值是__A___
-10?
10?
-20?
20?
34、下列描述中,正确的是__A___
所有的输入/输出都是通过调用库函数处理的?
所有的输入/输出都是通过输入/输出语句实现的?
getchar和putchar可以省略#include?
在输入/输出格式中的*表示跳过数据的含义?
35、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___ if(x>y) if(y>z)x=y; else z=y;
7?
6?
5?
4?
36、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x);
打印出321?
打印出23?
不打印任何结果?
陷入死循环?
37、以下关于switch语句和break语句的描述正确的是__D___
在switch语句中必须使用break语句?
break语句只能用于switch语句体中?
break语句只能用于循环语句中?
在switch语句中可以使用break语句?
38、与语句while(!x)等价的语句是__A___
while(x==0)?
while(x!=0)?
while(x!=1)?
while(~x)?
39、下面的描述错误的是__C___
?函数可以有多个形式参数?
?函数可以没有返回值?
?函数内可以嵌套定义函数?
?函数可以被其他函数调用?
40、 下面关于局部变量的描述中,错误的是__D___
?函数的局部变量的有效范围只能在本函数?
?函数的形式参数也是局部变量?
?局部变量的名称不能和函数同名称?
?不同的函数中不能定义相同名称的局部变

⑧ 求C语言程序高人给出如下试卷的答案,本人将不慎感激

选择题:
1.d
2a
3b
4a
5b
6a
7d
8c
9a
10d

填早唤空:
1.循环结好渣构
2.4
3.非0
4.if
5.跳出本次循环
6.char
7.假
8.for
9.0
10.switch
问答题:
1,不与回答填空有。
2.int ,long,char, double, float
3.++i是在i的寄存器中直接加1,i++是把i放到临时寄存器中,再临时寄存器中加1,然后临时寄存器友睁悄中的i值返回个i的寄存器。
4.不是任何时候,当值小于255的时候可以的。因为char是1一个字节,最大255,int4个字节最大65535.
读程题:
1。a=10,b=8,c=16
2。a=65 a=A b=66 b=66
x=67 x=C y=65 y=65
z=67
编程题:
1#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

#define LINE 1024
void main()
{
int i = 5;
int sum=1;
for( ; i > 0; --i)
sum *= i;
printf("%d\n", sum);
return 0;
}
2#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

#define LINE 1024
int main(void)
{
int a[3];
int min, max;
int i=0;
scanf("%d%d%d", &a[0], &a[1], &a[2]);
min = max = a[0];
for (i = 1; i<3;++i)
{
if (min > a[i])
min = a[i];
if (max < a[i])
max = a[i];
}
printf("max=%d min=%d\n", max, min);
return 0;
}
3#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

#define LINE 1024
int main(void)
{
int i=100;
int a,b,c;
for (;i<999;++i)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
if(a*a*a+b*b*b+c*c*c == i)
printf("%d\n", i);
}
return 0;
}
4:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
int line, i, j;
scanf("%d", &line);
int a[line][line];
int len = 1;
int h;
for(i = 0; i < line; ++i)
for(j = 0; j < line; ++j)
a[i][j] = 0;

for(i = 0; i < line; ++i)
{
for(j = 0; j < len; ++j)
{
if (len == 1)
a[i][j] = 1;
else
{
a[i][0] = 1;
for(h = len - 1; h > 0; --h)
{
a[i][h] = a[i-1][h]+a[i-1][h-1];
}
}
}
len ++;
}
for(i = 0; i < line; ++i)
{
for(j = 0; j < line; ++j)
if (a[i][j] != 0)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}

给你升级了,自己输入行数,比如输入10行,就是你想要的。

⑨ C语言期末题。帮忙做做。

第五题应芦大该锋哗知为B,不银消会是C的
第六题选B!b是地址常量,哪能被赋值撒!
第十题选A!从case1开始执行,b就加了一次

热点内容
四川农业大学申请考核博士 发布:2025-10-20 08:58:11 浏览:981
福田雷沃重工本科生待遇怎么样 发布:2025-10-20 08:53:49 浏览:575
华为要本科生吗 发布:2025-10-20 08:25:41 浏览:550
2008年青岛本科生工资 发布:2025-10-20 08:04:24 浏览:444
东北大学艺术考研 发布:2025-10-20 07:38:35 浏览:299
我的大学生活txt 发布:2025-10-20 07:35:28 浏览:25
人民大学外语系考研 发布:2025-10-20 07:31:12 浏览:894
上海交通大学考研辅导班 发布:2025-10-20 07:24:54 浏览:420
华中农业大学细胞生物学考研群 发布:2025-10-20 07:09:36 浏览:558
南京大学2016考研线 发布:2025-10-20 06:43:12 浏览:930