- UID
- 9931
- 帖子
- 56004
- 积分
- 55062
- 阅读权限
- 90
- 注册时间
- 2005-11-24
- 最后登录
- 2026-6-18
- 在线时间
- 12728 小时
- 战队
- [S.lian]
- 种族
- Zerg
- 战队
- [S.lian]
- 种族
- Zerg
|
本帖最后由 别愁BloodBrood 于 2012-6-22 13:05 编辑
一、选择题
1.若已有定义double x; 则下列不合法的表达式是( )
A. x%5 B.x /5 C.x +=5 D. x>=5
2.一个C程序的执行是( )
A.从main()函数开始,直到main()函数结束
B.从第一个函数开始,直到最后一个函数结束
C.从第一个语句开始,直到最后一个语句结束
D.从main()函数开始,直到最后一个函数结束
3.能正确表示数学关系“|a|≥10”的C语言表达式是( )
A. a>=10 or a<=-10 B. a≤10 || a≥-10
C. a<=10 &&a>=-10 D. a>=10‖a<=-10
4.以下不属于C语言关键字的是 ( )
A.default B.struct C.real D.typedef
5.若有说明int a[5], *p=a;那么以下对数组元素的正确引用是( )
A. a(1) B. a[5] C. p[4] D. a+1
6.下述关于break语句的描述中,错误的是( )
A. break语句可用于if语句中,它将退出if语句
B. break语句可用于switch语句中,它将退出switch语句
C. break语句可用于循环体内,它将退出该层循环
D. break语句在一个循环体内可以出现多次
7.若有如下定义,则正确的赋值语句为( )
struct date2
{ long i;
char c;}two;
struct date1
{ int cat; struct date2 three;
}one;
A.one.three.c=‘A’ B.one.two.three.c=‘A’
C.three.c=‘A’ D.one.c=‘A’
8.有以下函数定义:
void fun(int n,double x)
{……}
若以下选项中的变量都已经正确定义并且赋值,则对函数fun的正确调用语句是( )
A.fun(int y,double m); B.k=fun(10,12.5);
C.fun(x,n); D.void fun(n,x);
9.定义一个结构体变量时,系统分配给它的内存大小是( )。
A.成员中占内存量最大者所需的容量
B.各个成员所需内存量的总和
C.结构中第一个成员所需内存容量
D.不能确定
10.在c程序中,使用结构体的目的是( )
A.将一组相关的数据作为一个整体,以便程序使用
B.将一组相同数据类型的数据作为一个整体,以便程序使用
C.将一组数据作为一个整体,以便其中的成员共享存储空间
D.将一组数据一一列举,该类型变量的值只限于列举的数值范围内r
11.以下对二维数组的定义中,错误的是( )
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};
12.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是( )
A.char s[]=“abcde”; B.char s[]={“abcde”};
C.chars[]={‘a’,’b’,’c’,’d’,’e’,’\0’};
D.char s[5]=“abcde”;
13.若要在E盘上user子目录下名为test.txt的文本文件进行读写操作,下面符合此要求的函数调用是( )
A. fopen(“E:\user\test.text”,”r”);
B. fopen(“E:\\user\\test.text”,”r+”);
C. fopen(“E:\user\test.text”,”rb”);
D. fopen(“E:\\user\\test.text”,”w”);
14.以下关于函数的叙述中正确的是( )
A.每个函数都可以被其它函数调用(包括main函数)
B.每个函数都可以被单独编译
C.程序总是从main开始执行
D.在一个函数内部可以定义另一个函数
15.下列关于typedef的描述,正确的是( )
A.typedef同struct、union一样可以创造新的数据类型
B.typedef只是给原有的类型起个别名,并没有生成新的数据类型
C.typedef可以用来定义变量
D.typedef同#define一样都属于预处理命令
16、在一个C程序中( )
A、main函数必须出现在所有函数之前
B、main函数必须出现在所有函数之后
C、main函数可以在任何地方出现
D、main函数必须出现在固定位置
17、若有double x,则x不可以进行下列哪种运算( )
A、 % B、 / C 、 += D、 >=
18、下面不属于C语言关键字的是( )
A、short B、for C、union D、ELSE
19、下列运算符中优先级最高的是( )
A、 && B、+ C、! D、 !=
20、以下对二维数组的定义中错误的是( )
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}
21、下列程序段的输出结果为( )
struct date
{ int a;
char s[5];
}arg={27,”abcd”};
arg.a-=5;
strcpy(arg.s,”ABCD”);
printf(“%d,%s\n”,arg.a,arg.s);
A、27,abcd B、22,ABCD C、22,abcd D、27,ABCD
22、以下对二维数组a正确的定义语句是( )
A、int a [2,3]; B、int a (2,3); C、int a [2][3]; D、int a[2 ][ ];
23、return语句中表达式的类型和函数定义类型不一致时,函数返回值类型由( )决定:
A、return语句中表达式类型所决定
B、调用该函数时的主调函数类型所决定
C、调用该函数时由系统临时决定
D、定义该函数时所指定的函数类型决定
24、已知 int a,b; 用语句 scanf(“%d%d”,&a,&b); 输入a,b时,不能作为输入分隔符的是( )
A、, B、空格 C、 回车 D、[Tab]键
25、下面关于C程序中函数的叙述中正确的是( )
A、不能嵌套定义,但可以嵌套调用
B、可以嵌套定义,但不用嵌套调用
C、定义和调用均能嵌套
D、定义和调用均不能嵌套
26、若已有定义char str[10]=”ch\nina”;则函数strlen(str)的值是( )
A、5 B、6 C、7 D、9
27、已有定义 int i,a[5],*p; 以下合法的赋值语句是( )
A、p=100 B、p=a[5] C、p=a[2]+2 D、p=a+2
28、下列合法的用户标识符是 ( )
A、int B、2x C、a1 D、y.3
29.若有double x,下列不合法的表达式是( )
A、 x%5.2 B 、x/5.2 C 、x+=5.2 D、x >=5.2
30.下列程序段的输出结果是_______。
int x=3;
do {printf(“%3d”,x-=2);}
while(!(--x));
A、1 B、3 0 C、1 -2 D、死循环
31、下面关于C语言变量的叙述,错误的是()
A、变量名必须由字母或下划线开头。
B、程序中的变量必须在使用之前定义。
C、不同基本类型的变量之间可以混合运算。
D、在定义变量的同时不能对变量赋初值
32、下面程序段的输出结果是( )
char str1[20]=“China”; char str2[10]=”computer”;
strcpy (str1,str2) ; printf (“%s”, str1);
A、程序错误 B、China C、computer D、Chinacomputer
33、设有数组定义:char array[10 ]=“china”;则strlen(array)的值为____;
A、10 B、5 C、6 D、无法确定
34、已有定义 int i,a[10],*p; 以下正确的赋值语句是( )
A、p=100; B、p=&a; C、p=a+2; D、p=a[2];
35、若有定义 char a[]="movie",b[10]="movie";
则a、b两个数组各占的内存大小为
A、5个字节和10个字节 B、6个字节和10个字节
C、5个字节和6个字节 D、6个字节和6个字节
二、填空题
1、C程序包含3种基本的程序结构:顺序结构、选择结构和 ____ 结构。
2、函数是C程序的基本单位。一个C源程序可以包含若干个函数,但至少包含一个 ______ 函数。
3、算术关系|a|<=10表示成c语言表达式应该为: _______
4、C语言程序中,用关键字 ____ 定义结构体类型。
5、若有定义int a[6]={1,2,3,4,5,6},*p=a+1;则表达式(*p)++的值为 __ 。
6、若有以下数组定义:int a[3][4]; 则该数组中共有 元素。
7、C中可以使用fopen函数来实现文件的打开,使用 函数来实现文件的关闭。
8、若有定义int a[2][3];则定义一个指向具有3个元素的整型数组的指针变量p并使其指向数组首位置,应使用语句: 。
9、如果在程序中用到strlen()、strcpy()函数,则应该在程序的开头部分加上相应的头文件,其命令是: 。
10、为了明确表示函数不带回返回值,可以用关键字 把函数定义成无类型。
11.函数是C程序的基本单位。一个C源程序至少包含一个 函数,也可以包含若干个其他函数。
12.若已有定义int x[10]; 则定义一个指针变量p并使其指向数组x的首地址应使用的语句为 ;
13.字符串 “ happy ” 在内存中占 个字节,该字符串的长度是 。
14.在用switch语句实现多分枝选择结构时,如果在执行一个case分支后,使程序流程跳出switch结构,即终止switch语句的执行,可以用一个 语句来达到此目的。
15.C规定用标准输入输出函数 ________ 来实现文件的打开操作。
16.结构体类型的名字是由一个关键字 和结构体名二者组合而成的。
17.函数的返回值是通过函数中的 语句获得的。为了明确表示函数不带回返回值,可以用关键字 把函数定义成无类型。
18.根据数据的组织形式,数据文件可分为 _____ 文件和二进制文件。
19.一个函数由两部分组成,即函数 首部和 。
20.函数的返回值是通过函数中的 语句获得的
21.字符串 “ hello ” 在内存中占 个字节,字符 ‘a’占 字节。
22.定义一个文件型指针变量fp应使用的语句为: 。
23.使用C语言字符串处理库函数时,应在文件开头加 命令。
24.C语言允许用户将不同各类型的数据组合成一个有机的整体,以便于引用,这种数据结构,称为 ,该类型的名字是由一个关键字 和用户自定义名称二者组合而成的。
25.若已有定义int x; 则定义一个指针变量p并使其指向变量x应使用的语句为 ;。
三、阅读程序并写出程序执行结果
1、下列程序的输出结果为:
#include <stdio.h>
#include <string.h>
void main()
{char s[][20]={"hello","everyone","happy"};
char *p[3];
int i;
for(i=0;i<3;i++)p=s;
for(i=0;i<3;i++)puts(p);
}
2.以下程序输出结果是 。
#include “stdio.h”
main( )
{char a[][10] = {“China” ,”Shandong”,”Jinan” };
char (*p)[10];
for(p=a;p<a+3;p++)
puts(*p); }
3.以下程序输出结果是 ______ 。
#include <stdio.h>
int sub(int n)
{static int t=1;
t=t*n;
return t;}
void main()
{ int i,k;
for(i=0;i<4;i++)
{ k=sub(i);
printf("%d\n",k);}
}
4.以下程序输出结果是 。
#include <stdio.h>
main( )
{ int *p1,*p2,*p;
int a=5, b=8;
p1=&a;p2=&b;
if(a<b)
{ p=p1;
pl=p2;
p2=p;}
printf(”%d, %d”,*p1,*p2); }
5.以下程序输出结果是 ______ 。
#include <stdio.h>
long fib(int n)
{long x;
if(n>2) x= fib(n-1)+fib(n-2);
else x=1;
return x;
}
void main()
{int i;
long fib(int);
for(i=1;i<=6;i++)
printf(“%4d\n”,fib(i));
}
6 .以下程序输出结果是 。
#include <stdio.h>
void main()
{FILE *fp;
char str[10];
fp=fopen("aa.txt","w");
fputs("abc",fp);
fclose(fp);
fp=fopen("aa.txt","a+");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%s",str);
puts(str);
fclose(fp);
}
7.以下程序若在运行时输入12345,则输出结果是 。
#include <stdio.h>
void main()
{ int a,s=0;
scanf(“%d”,&a);
while(a!=0)
{
s=s%10;
a=a/10;
}
printf(“\ns=%d”,s);
}
四、程序填空题
1、以下是一个统计候选人得票的程序。设有3个候选人,每次输入一个候选人的姓名,要求最后统计并输出每人的得票结果。
struct person /*全局变量*/
{char name[20];
int count;
}leader[3] ={"Li",0,"Zhang",0, "Wang",0};
void main( )
{ int i,j ; char name[20];
for(i=1;i<=10;i++)
{ scanf("%s", );
for(j=0;j<3;j++)
if(strcmp(leader_name,leader[j].name)==0)
}
for(i=0;i<3;i++)
printf("%5s:%d\n",leader.name,leader.count);
}
2.以下程序的功能是将数组中的元素倒序存放,请完成程序。
#include <stdio.h>
void main()
{ void reverse(int *,int ) ;
int i,a[10],*p;
printf("请输入10个数组元素:\n");
for( ;p<a+10;p++)
scanf("%d",p);
printf("\n");
reverse( ,10);
printf("变化后的数组元素为:\n");
for( p=a;p<a+10;p++)
printf("%d " , *p);
printf("\n");
}
void reverse(int *p,int n)
{ int *q,t;
for( ;p<q;p++,q--)
{t=*p;*p=*q;*q=t;}
3.以下程序的功能是将键盘输入的正整数的各位相加后输出,请完成程序。
#include <stdio.h>
void main()
{ int a,s=0;
scanf(“%d”,&a);
while( )
{ ; a=a/10;}
printf(“\ns=%d”,s);
}
4.以下程序的功能是将键盘输入的正整数的各位相加后输出,请完善程序。
#include <stdio.h>
void main()
{
int i,j;
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)
if(i%j= =0)
if( ) printf("%d ",i);
}
}
5、以下程序中fib函数的功能是用递归方式求斐波那契数列的第n项,在main函数中调用fib函数输出该数列的前6项。请填空。
#include <stdio.h>
void main()
{ int i;
for(i=1;i<=6;i++)
printf(“%4d\n”,fib(i));
}
long fib(int n)
{long x;
if(n>2)
x=
else
return x;
}
五、编程题
1、某单位有N名职工参加计算机水平考试,设每个人的数据包括准考证号、姓名、年龄、成绩。单位规定30岁以下的职工进行笔试,分数为百分制,60分及格;30岁以上的职工进行操作考试,成绩分为A、B、C、D四个等级,C以上为及格。请完成:
(1)写出职工类型的定义
(2)定义count函数用来统计合格的人数
(3)在主函数中输入N名职工信息,调用count函数统计并输出合格人数,然后输出所有职工的信息。
2、以下程序的功能是fun函数的功能是用递归方式求某个数n的阶乘,请写出该函数的完整定义
#include <stdio.h>
void main()
{
int n;
long p;
long fun(int); //对fun函数的声明
printf("input an interger:");
scanf("%d",&n);
p=fun(n); //调用fun函数
printf("%d!=%ld\n",n,p);}
3、以下程序中sort函数是用对数组元素进行升序排序。请依据主函数中对sort函数的声明及调用形式给出完整的函数定义
#include <stdio.h>
void main()
{ int a[10],i;
void sort(int *,int);
for(i=0;i<10;i++)
scanf("%d",&a);
printf("排序前的数组:\n");
for(i=0;i<10;i++)
printf("%5d",a);
sort(a,10); //调用排序函数
printf("排序后的数组:\n");
for(i=0;i<10;i++)
printf("%5d",a);
}
|
|