当前位置:文档之家› 理工c语言程序设计4

理工c语言程序设计4

试卷编号:7385
所属语言:Turbo C
试卷方案:08092C语言考试
试卷总分:100分
共有题型:5种

━━━━━━━━━━━━━━━
一、填空 共15题 (共计30分)
━━━━━━━━━━━━━━━

第1题 (2分)
已知 i=5,写出语句 a=(a=i+1,a+2,a+3); 执行后整型变量 a 的值是【9】.

第2题 (2分)
程序段int k=10; while(k=0) k=k-1循环体语句执行【0】次.

第3题 (2分)
设所有变量已正确定义,则下列程序段运行后y的值是【20】.
int a=0,y=10;
if(a=0)y--;else if(a>0)y++;
else y+=y

第4题 (2分)
若 char w,int x,float y,double z;则表达式w*x+z-y的结果为【double】类型.

第5题 (2分)
设x=5>1+2,x的值 为【1】.

第6题 (2分)
c语言表达式5>2>7>8的值是【0】.

第7题 (2分)
int x=2,y=3,z=4; 则表达式x+(y>!z)的值为【3】.

第8题 (2分)
若a,b和c均是int型变量,则计算表达式 a=(b=4)+(c=2) 后,a值为【6】, b值为【4】.

第9题 (2分)
设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【3】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y);

第10题 (2分)
已知 i=5.6;写出语句 a=(int)i; 执行后变量 i 的值是【5.6】.

第11题 (2分)
设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为【1】.

第12题 (2分)
调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 为读入而打开需填入【r】.

第13题 (2分)
若a是int型变量,且a的初值为6,则计算表达式 a+=a-=a*a 后a的值为【-60】.

第14题 (2分)
int x=2;z=++x+1; 则z的值为【4】.

第15题 (2分)
若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组可用的最大下标值是【9】.

━━━━━━━━━━━━━━━
二、判断 共10题 (共计10分)
━━━━━━━━━━━━━━━

第1题 (1分)y
表达式65<'B'的值是1

第2题 (1分)y
char c[]="Very Good"; 是一个合法的为字符数组初始化的语句.

第3题 (1分)n
对数组进行初始化bb[]="hello";
则数组bb的长度是5.

第4题 (1分)n
int(i)表示取变量i的整数部分.

第5题 (1分)y
若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6.

第6题 (1分)n
若有int i,*p;则语句p=1000;
是合法的.

第7题 (1分)y
在Turbo C环境下,可以使用F2键将当前源程序存盘.

第8题 (1分)y
表达式4||3||2的值是1.

第9题 (1分)n
表达式4,3,2的值是4.

第10题 (1分)y
a=(b=4)+(c=6) 是一个合法的赋值表达式.

━━━━━━━━━━━━━━━━━
三、单项选择 共30题 (共计30分)
━━━━━━━━━━━━━━━━━

第1题 (1分)
C语言规定,函数返回值的类型是由(D).
A:return语句中的

表达式类型所决定
B:调用该函数时的主调函数类型所决定
C:调用该函数时系统临时决定
D:在定义该函数时所指定的函数类型所决定


第2题 (1分)
int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为(B).
A:1
B:2
C:3
D:不一定


第3题 (1分)
以下不能正确定义二维数组的选项是(D).
A:int a[2][2]={{1},{2}};
B:int a[][2]={1,2,3,4};
C:int a[2][2]={{1},2,3};
D:int a[2][]={{1,2},{3,4}};


第4题 (1分)
已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)
||year%400==0的值为"真"的数据是(A).
A:1990
B:1992
C:1996
D:2000


第5题 (1分)
下列程序的输出结果是(A).main(){int a=7,b=5; printf("%d\n",b=b/a);}
A:0
B:5
C:1
D:不确定值


第6题 (1分)
以下数值中,不正确的八进制数或十六进制数是(C).
A:0x16
B:16
C:-16
D:0xaaaa


第7题 (1分)
C语言中的文件类型只有(B).
A:索引文件和文本文件两种
B:ASCII文件和二进制文件两种
C:文本文件一种
D:二进制文件一种


第8题 (1分)
执行下列语句后变量x和y的值是(C).
y=10;x=y++;
A:x=10,y=10
B:x=11,y=11
C:x=10,y=11
D:x=11,y=10


第9题 (1分)
以下程序的输出结果是(C).
main()
{float x=3.6;
int i;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A:x=3.600000,i=4
B:x=3,i=3
C:x=3.600000,i=3
D:x=3 i=3.600000


第10题 (1分)
下列变量定义中合法的是(A).
A:short _a=1-.1e-1;
B:double b=1+5e2.5;
C:long do=0xfdaL;
D:float 2_and=1-e-3;


第11题 (1分)
while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是(A).
A:t>=1e-5&&t<=-1e-5&&s>-10&&s<10
B:fabs(t)<1e-5&&!s/10
C:fabs(t)<1e-5
D:s/10==0


第12题 (1分)
下列字符序列中,是C语言保留字的是(A).
A:sizeof
B:include
C:scanf
D:sqrt


第13题 (1分)
以下描述中,正确的是(C).
A:预处理是指完成宏替换和文件包含中指定的文件的调用
B:预处理指令只能位于C源文件的开始
C:C源程序中凡是行首以#标识的控制行都是预处理指令
D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备


第14题 (1分)
设以下变量均为int类型,则值不等于7的表达式是(C).
A:(x=y=6,x+y,x+1)
B:(x=y=6,x+y,y+1)
C:(x=6,x+1,y=6,x+y)
D:(y=6,y+1,x=y,x+1)


第15题 (1分)
打开文件时,方式"w"决定了对文件进行的操作是(A).
A:只写盘
B:只读盘
C:可读可写盘
D:追加写盘


第16题 (1分)
下列关于C语言数据文件的叙述中正确的是(D).
A:文件由ASCII码字符序列组成,C语言只能读写文本文件
B:文件由二进制数据序列组成,C语言只能读写二进制文件
C:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件


第17题 (1分)
以下

程序段的输出结果为(B).for(i=4;i>1;i--)for(j=1;jA:无
B:######
C:#
D:###


第18题 (1分)
以下正确的说法是(B).
A:用户若需调用标准库函数,调用前必须重新定义
B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C:系统根本不允许用户重新定义标准库函数
D:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调


第19题 (1分)
C语言源程序的基本单位是(B).
A:过程
B:函数
C:子程序
D:标识符


第20题 (1分)
以下叙述中正确的是(C).
A:在程序的一行上可以出现多个有效的预处理命令行
B:使用带参的宏时,参数的类型应与宏定义时的一致
C:宏替换不占用运行时间,只占编译时间
D:在以下定义中 C R 是称为"宏名"的标识符 #define C R 045


第21题 (1分)
设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是(D).
A:552
B:144
C:264
D:-264


第22题 (1分)
C语言中,char类型数据占(A).
A:1个字节
B:2个字节
C:4个字节
D:8个字节


第23题 (1分)
对结构体类型的变量的成员的访问,无论数据类型如何都可使用
的运算符是(A).
A:.
B:->
C:*
D:&


第24题 (1分)
关于建立函数的目的,以下正确的说法是(B).
A:提高程序的执行效率
B:提高程序的可读性
C:减少程序的篇幅
D:减少程序文件所占内存


第25题 (1分)
设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下
不能正确执行的赋值语句是(B).
A:c=*p1+*p2;
B:p2=c;
C:p1=p2;
D:c=*p1*(*p2);


第26题 (1分)
下列程序的输出结果是(A).
main()
{int a=7,b=5;
printf("%d\n",b=b/a);
}
A:0
B:5
C:1
D:不确定值


第27题 (1分)
若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是(C).
A:int p=&x;
B:int *p=x;
C:int *p=&x;
D:*p=*x;


第28题 (1分)
C语言中,double类型数据占(D).
A:1个字节
B:2个字节
C:4个字节
D:8个字节


第29题 (1分)
以下关于运算符优先顺序的描述中正确的是(C).
A:关系运算符<算术运算符<赋值运算符<逻辑运算符
B:逻辑运算符<关系运算符<算术运算符<赋值运算符
C:赋值运算符<逻辑运算符<关系运算符<算术运算符
D:算术运算符<关系运算符<赋值运算符<逻辑运算符


第30题 (1分)
下列程序的输出结果是(B).
main()
{char c1=97,c2=98;
printf("%d %c",c1,c2);
}
A:97 98
B:97 b
C:a 98
D:a b


━━━━━━━━━━━━━━━━
四、程序填空 共2题 (共计16分)
━━━━━━━━━━━━━━━━

第1题 (8分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

题目:以

下程序的功能是统计一个字符串中的字母、数字、空格、
和其它字符的个数。

-------------------------------------------------------*/

#include "stdio.h"
main ()
{
char s1[80];int a[4]={0};
int k;
/***********SPACE***********/
【void count(charv s[],int b[])】;
gets(s1);
/***********SPACE***********/
【fun(s1,a)】;
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='\0';i++)
if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z') b[0]++;
/***********SPACE***********/
else if (【'0'<=s[i]&&s[i]<='9'】) b[1]++;
/***********SPACE***********/
else if (【s[i]==32】 ) b[2]++;
else b[3]++;
}


第2题 (8分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

题目:将字母转换成密码,转换规则是将当前字母变成其后的第
四个字母,但W变成A、X变成B、Y变成C、Z变成D。小写字
母的转换规则同样。
-------------------------------------------------------*/
#include
main()
{char c;
/***********SPACE***********/
while((c=【getchar()】)!='\n')
/***********SPACE***********/
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))【c=4+c】;
/***********SPACE***********/
if((c>'Z'【&&】c<='Z'+4)||c>'z')c-=26;
printf("%c",c);
}
}

━━━━━━━━━━━━━━━━
五、程序设计 共2题 (共计14分)
━━━━━━━━━━━━━━━━

第1题 (7分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------

题目:编写函数fun,函数的功能是:求5行5列矩阵的
主、副对角线上元素之和。注意,两条对角线
相交的元素只加一次。
例如:主函数中给出的矩阵的两条对角线的和为45。

--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
------------------------------------------------*/
#include "stdio.h"
#define M 5
int fun(int a[M][M])
{

/**********Program**********/
int s=o;
int i,j;
for(i=1;is=s+a[i][i]+a[i][m-1-i];
s=s-a[(m-1)/2][(m-1)/2];
return s;
/********** End **********/

}

main()
{
int a[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}};
int y;
y=fun(a);
printf("s=%d\n",y);
yzj();
}
yzj()
{
FILE *IN,*OUT;
int iIN[M][M],iOUT;
int i,j,k;
IN=fopen("16.in","r");
if(IN==NULL)
{printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("16.out","w");
if(OUT==NULL)
{printf("Please Verify The Current Dir.. It May Be Changed");
}
for(k=0;k<10;k++)
{ for(i=0;ifor(j=0;jfscanf(IN,"%d",&iIN[i]

[j]);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}

第2题 (7分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------

题目:编写函数fun其功能是:求一个n位自然数的各
位数字的积。(n是小于10的自然数)
--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*/
#include "stdio.h"
#include"conio.h"


long fun(long n)
{
/**********Program**********/
long d,s=1;
while (n>0)
{d=n%10;
s*=d;
n/=10;}
return s;
/********** End **********/

}

main()
{long m;

printf("Enter m: ");
scanf("%ld", &m);
printf("\nThe result is %ld\n", fun(m));
yzj();
getch();

}

yzj()
{

FILE *IN,*OUT;
int c ;
long t;
long o;

IN=fopen("in.dat","r");
if(IN==NULL)
{printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("Write File Error");
} for(c=1;c<=5;c++)
{ fscanf(IN,"%ld",&t);
o=fun(t);
fprintf(OUT,"%ld\n",o);
}
fclose(IN);
fclose(OUT);
}




相关主题
文本预览
相关文档 最新文档