c语言1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

考试科目:C语言程序设计。
考试时间:90分钟。
考生姓名: 准考证号:
第一大题:判断正误题,请在试题前的括号中打“√”或“×”。(共30题,每题1.000分,合计30分。难题占10%,普通题占80%,容易题占10%。)
( 错 ) 1、 在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
( 对 ) 2、 当输入数据时,必须指明变量的地址,如scanf("%f",&f)
( 对) 3、 表达式:1 && 3.14 和 1 & 3 的值一样大。
( 错 ) 4、 在循环语句的循环体中,continue语句的作用是立即终止整个循环
( 对 ) 5、 在switch-case语句中,不是每个case后都要使用break语句。
( 错 ) 6、 若要表示if( a不等于0 )这一关系式,则能正确表示这一关系的表达式为if (!a )
( 错 ) 7、 Break语句只能用于循环结构中。
( 错 ) 8、 在C语言中,逻辑值"真"用大于0的数表示。
( 错 ) 9、 设int c=5和int a; a=2+(c+=c++,c+8,++c
), 则a=15
( 错 ) 10、 若定义int x[10];则Turbo C编译系统为该数组分配10个字节存储单元。
( 错 ) 11、 C语言中在定义数组时,一个数组的数组元素的数据类型可以不相同
( 错 ) 12、 C语言中是用字符串变量来存放字符串。
( 错 ) 13、 int b;char c[10];,则正确的输入语句是scanf("%d%s",b,c);
( 对 ) 14、 表达式sizeof("abc")的值是 4 。
( 对 ) 15、 若a为一维数组名,则*(a+i)与a[i]等价。
( 错 ) 16、 int b;char c[10];,则正确的输入语句是scanf("%d%s",b,&c);
( 对 ) 17、 设函数调用表达式为:add(sub(a,b),c,d),则函数add带3个参数。
( 对 ) 18、 在main函数内定义的变量在整个程序范围内有效
( 对 ) 19、 在C语言中实参和与其对应的形参各占用独立的存储单元。
( 对 ) 20、 若函数类型和return语句中表达式类型不一致时,返回类型以函数类型为准。
( 对 ) 21、 在C程序中return语句最多可以返回一个值。
( 对 ) 22、 指针中存放的是地址值
( 对 ) 23、 设变量定义为"int x, *p=&x;",则&*p相当于P
( 对 ) 24、 有以下语句
static int a[]={0,1,2,3,4},*p;
p=&a[1];
则表达式(*p)++执行后,指针p指向的元素值是2。

( 错 ) 25、 如果有struct wage {char name[30];float salary; };
则struct wage worker1,worker2;定义了两个结构常量

( 错 ) 26、 结构体成员变量可以用作函数的形式参数。
( 错 ) 27、 结构体和共用体都是构造数据类型,没有区别;
( 错 ) 28、 若要打开A盘上的user子目录下名为abc.txt

的文本文件进行读、写操作,符合此要求的函数调用是fopen("A:\user\abc.txt","r")
( 错 ) 29、 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
( 对 ) 30、 若有定义FILE *fp,则打开与关闭文件的命令是fopen(fp),fclose(fp)
第二大题:单项选择题,每题有且仅有一个正确答案。请在试题前的括号中写出答案选择。(共25题,每题2.000分,合计50分。难题占20%,普通题占60%,容易题占20%。)
( B ) 1、 在以下运算符中,优先级最高的运算符是
A、? :
B、++
C、&&
D、+=
( B ) 2、 若变量已定义并赋值,下列符合C语法的表达式是
A、a:=b+1
B、a=b=c+2
C、int 18.5%3
D、a=a+7=c+b
( A) 3、 以下程序的输出结果是
void main()
{
int a = 2,b = 5;
printf("a=%%%d,b=%%%d",a,b);
}

A、a=%2,b=%5
B、a=2,b=5
C、a=%%d,b=%%d
D、a=%d,b=%d
( A ) 4、 设有程序段
int k = 10 ;
while ( k = 0 ) k = k - 1 ;
以下描述正确的是

A、循环体语句一次也不执行
B、循环是无限循环
C、while 循环语句执行十次
D、 循环体语句执行一次
5、 若定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用( A )
A、scanf("%f",&a);
B、scanf("%5.2f",a);
C、scanf("%6.2f",&a);
D、scanf("%f",a);
( D ) 6、 若变量已正确说明为int类型,要给a,b,c输入数据,以下语句正确的是
A、read(a,b,c);
B、scanf("%d%d%d",a,b,c);
C、scanf("%D%D%D",&a,%b,%c);
D、scanf("%d%d%d",&a,&b,&c);
( D ) 7、 以下程序的输出结果是__________
void main()
{ int x=10,y=10;
printf("%d %d\n",x--,--y);
}

A、 10 10
B、 9 9
C、9 10
D、10 9
( D ) 8、 下列对一维数组a的正确说明语句为
A、int a(10);
B、 int n=10, a[n];
C、#define SIZE 10 int a[SIZE];
D、int n; scanf("%d",&n);int a[n];
9、 下列语句的执行结果是( B )。
static char str[10]={"china"};
printf("%d",strlen(str));

A、10
B、6
C、5
D、0
(B ) 10、 以下能正确定义一维数组的选项是
A、int a[5]={0,1,2,3,4,5};
B、char a[]={0,1,2,3,4,5};
C、char a={'A','B','C'};
D、int a[5]="0123";
( D ) 11、 下面程序段的运行结果是( )。
char a[7]="abcdef";
char b[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);

A、空格
B、\0
C、e
D、f
( C ) 12、 若有以下程序段:
int a[]={4,0,2,3,1},k,j,t;
for(j=1;j<5;j++)
{
t=a[j];
k=j-1;
while(k>=0&&t>a[k])
{
a[k+1]=a[k];k--;}
a[k+1]=t;
}
则该程序段的功能是___

A、对数组a进行插入排序(升序)
B、对数组a进行插入排序(降序)
C、对数组a进行选择排序(升序)
D

、对数组a进行选择排序(降序)
( B ) 13、 若有定义:char c[10];从键盘输入"LiFang",则正确的函数引用是
A、scanf("%c",&c[10]);
B、gets(c);
C、scanf("%s",&c);
D、gets(c[10]);
( D ) 14、 以下正确的声明是______。
A、int a[1][4]={1,2,3,4,5};
B、 float x[3][]={{1},{2},{3}};
C、 long b[2][3]={{1},{1,2},{1,2,3}};
D、double y[][3]={0};
( D ) 15、 一个C程序由函数A(),B(),C()和函数P()构成,在函数A()中分别调用了函数B()和函数C(),在函数B()中调用了函数A(),且在函数P()中也调用了函数A(),则可以说
A、函数B()中调用的函数A()是函数A()的间接递归调用
B、函数A()被函数B()调用是直接递归调用
C、函数P()直接递归调用了函数A()
D、函数P()中调用的函数A()是函数P()的嵌套
( ) 16、 有如下程序
int func(int a,int b)
{
return(a-b);
}
main()
{
int x=2,y=5,z=8,r;
r=func(z,func(y,x));
printf("%d\n",r);
}
该程序的输出的结果是

A、2
B、3
C、4
D、5
( B ) 17、 在C语言程序中,以下描述正确的是
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均不可以嵌套
D、函数的定义和函数的调用均可以嵌套
( D ) 18、 19. 读下列程序:
void main()
{
static char str[50]="485057ehk105101",*p=str;
int sum1 = 0,sum2=0;
while(*p!='\0')
{
if(*p>=48&&*p<=57)
sum1++;
else if(*p>=101&&*p<=107)
sum2++;
else;
p++;
}
printf("%d,%d\n",sum1,sum2);}
3,2
A、3,2
B、2,3
C、3,12
D、12,3
(图片文件:C:\C语言2011-2012-2期末考试考生端\picture\else;
p++;
}
printf("%d,%d\n",sum1,sum2);}
3,2 )
 19、 以下程序的输出结果为___A____。
char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};
char **p;
main()
{
int i;
p = alpha;
for(i=0;i<4;i++) printf("%c",*(p[i]));
printf("\n");
}

A、 AEIM
B、 BFJN
C、ABCD
D、DHLP
(图片文件:C:\C语言2011-2012-2期末考试考生端\picture\printf("\n");
}

 20、 以下程序的运行结果为( A )。
#define PT 3.5
#define S(x) PT*x*x
main()

int a=1, b=2;
printf("%4.1f \n",S(a+b));


A、7.5
B、10.5
C、14.0
D、31.5
 21、 下列程序运行结果是( D )
#define X 5
#define Y X+1
#define Z Y*X/2
void main()
{
int a;
a=Y;
printf("%d ",Z);

printf("%d\n",--a);
}

A、7 6
B、12 6
C、12 5
D、7 5
( C ) 22、 若结构体struct person定义如下:
struct person
{char name[20];
int age;
};
则下列声明和语句正确的是 。

A、struct person p1; scanf("%s%d", , p1.&age);
B、struct person p1; p1={"Zhang", 20};
C、struct person

p1; scanf("%s%d", p1->name, &p1->age);
D、struct person p1={"Zhang", 20};
( D ) 23、 调用函数fgets(str, n, fp)如果成功,其功能是
A、从fp所指定的文件中读出n个字符并存放到字符数组str中。
B、从fp所指定的文件中读出(n-1)个字符并存放到字符数组str中。
C、从fp所指定的文件中读出(n-1)个字符并存放到字符数组str中,并使str[n]的值为'\0'。
D、从fp所指定的文件中读出(n-1)个字符并存放到字符数组str中,并使str[n-1]的值为'\0'。
(A ) 24、 在下面程序中,若file.dat文件中原有内容为:abc,则运行程序后file.dat文件中的内容为
#include
void main()
{ FILE *fp;
fp=fopen("file.dat","w");
fprintf(fp,"%s","def");
fclose(fp);
}

A、abcdef
B、abc
C、def
D、NULL
(图片文件:C:\C语言2011-2012-2期末考试考生端\picture\)
( C ) 25、 在C程序中,可以把整型数以二进制形式存放到文件中的函数是( )
A、fprintf函数
B、fread函数
C、fwrite函数
D、fputc函数
第三大题:填空题。请在试题中的空格处写出答案。(共10题,每题2.000分,合计20分。难题占10%,普通题占70%,容易题占20%。)
1、 若x为int类型,则与逻辑表达式"x"等价的表达式是__%d__, 与逻辑表达式"!x"等价的表达式是_x==0___。
2、 以下程序不用第三个变量实现两个数对调的操作。
#includ "stdio.h"
main()
{
int a,b;
scanf("%d,%d",&a,&b);
a=_a+b__;(三个字符)
b=_a-b__;(三个字符)
a= a-b;
printf("%d,%d",a,b);
}

3、 若x=3,y=z=4,则下列表达式的值是。
(1)(z==y)? 1:0
值为_x!=0
(2) z==y&&y==x
值为x==0_

4、 表达式'c'&&'d'的值为_(填写阿拉伯数字),'c'&&'d'||!(3+4)的值为_(填写阿拉伯数字)。
5、 C语言所提供的基本数据类型的整型类型包括:_短整型_____、整型、_长整型_____。(按每种类型所占字节数,从小到大排列)
6、 将60分以下的所有成绩显示到屏幕上
int score[10]={56,76,65,43,98,67,34,89,90,76},i;
for(i=0;(i<10__);i++)
if(___score[i]_____小于60)
printf("score[%d]=%d\n",i,score[i]);

7、 下面函数的功能是将一个字符串逆序存放,请填空。
#include "stdio.h"
#include "string.h"
void fun(char str[])
{
__int m___;
int i,j;
for(i=0,j=strlen(str);i小于j;i++,j--)
{
m = str[i];
str[i] = __str[j-1]______;
str[j-1] = m;
}
printf("%s\n",str);
}

8、 整型数组求和
int a[10]={0,1,2,3,4,5,6,7,8,9},sum=0,*pa;
pa=a;
for(pa=a;(_pa-a___)小于10; _pa++___)
sum=sum+*pa;

9、 在n行n列的矩阵中,每行都有最大的数,本程序求这n个最大数中的最小一个。
#include "stdio.h"
#define N 100
int a[N][N]
void main()
{int

row,col,max,min,n;
/*输入合法n(小于100),和输入n*n个整数到数组a的代码略*/
for(row=0;row小于n;row++){
for(max=a[row][0],col=l;col小于n;col++)
if(max小于a[row][col]) max=a[row][col];
if(__row==0____) min=max;
else if (min大于max) __min=max_____;
}
printf("the min of max numbers if %d\n",min);
}

10、 统计字符串的单词数量(单词用空格分隔)
char str[30]={"Welcome my friend!"};
int i,num;
for(i=1;str[i]!=_\0___;i++)
{
if(str[i]!=' ' && str[i-1]=='空格_'__)
num++;
}
printf("num=%d",num);



相关文档
最新文档