C语言上机考试经典试题(3套)

C语言上机考试经典试题(3套)
C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力

第二十八次等级考试

二级(C与C++语言) 笔试试卷

时间: 2008年4月19 日

上午9:00—11:00

第一部分

软件技术基础

(共15分)

一、是非判断题(每小题1分,共10分)

( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )

1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 )

2. 数据在计算机内存中的表示是指数据的存储结构。( 2 )

3. Windows是多用户多任务操作系统。( 3 )

4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 )

5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 )

6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 )

7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。

( 7 )

8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 )

9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 )

10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 )

二、选择题(每小题1分,共5分)

1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。

11 (A) 可行性分析(B) 程序编码

(C) 详细设计(D) 需要分析

2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。

12 (A) 1,4,3,2 (B) 3,1,4,2

(C) 2,3,4,1 (D) 3,4,2,1

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++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是(16 )。

16 (A) 增加了一些新的运算符(B) 允许函数设置缺省参数

(C) 规定函数说明符必须用原型(D) 引进了类和对象的概念

2. 决定C++语言中函数的返回值类型的是(17 )。

17 (A) return语句中的表达式类型

(B) 在定义该函数时所指定的数据类型

(C) 调用该函数时的主调函数类型

(D) 调用该函数时系统随机产生的类型

3. C语言中运算对象必须是整型的运算符是(18 )。

18 (A) % (B) / (C) = (D) 《=

4. 若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是(19 )。

19 (A) EOF (B) -1 (C) 1 (D) NULL

5. 已知:int a=15,b=16; 则表达式(a&b)&&br的结果是(20 )。

20 (A) 1 (B) 0 (C) 16 (D) 31

6. 已知:int arr[10]; 则对arr数组元素的正确引用是(21 )。

21 (A) arr[10] (B) arr[3.5] (C) arr(5) (D) arr[10-10]

7. 下列程序中,循环结束后b的值是(22 )。

vpod main()

{

int a=1,b=10;

do

{

b-=a;

a++;

}while(b-->10);

}

22 (A) -1 (B) -2 (C) 8 (D) 9

8. 以下程序的输出结果是( 23 )。

# define M(x,y,z) x*y+z

main()

{

int a=1,b=2,c=3;

printf("%d\n",M(a+b,b+c,c+a));

}

23 (A) 12 (B) 15 (C) 17 (D) 19

9. 下面程序把数组元素中的最大值放入a[0]中,则在if语句下划线的条件表达式应填入的是( 24 )。

main()

{

int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;

for(i=0;i<10;i++,p++)

if ( ) *a=*p;

printf("%d",*a);

}

24 (A) p>a (B) *p>a[0] (C) *p>*a[0] (D) *p[0]>a[0]

10. 若在下面程序段中使指针变量p指向一个存储整型数据的动态存储单元,则在下划线处应填入( 25 ) 。

int *p;

p= malloc(sizeof(int));

25 (A) int (B) int * (C) (* int) (D) (int *)

二、读程序回答问题( 每个选择3分,共45分)

1. 读程序写出程序运行结果。

# include

void fun(char *s,char t)

{

while(*s)

{ if(*s==t) *s=t-'a'+'A';

s++;

}

}

void main()

{

char s[100]="abcddfefdbd",c='d';

fun(s,c);

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

}

程序运行后的输出结果是(26 )。

26 (A) ABCDDFEFDBD (B) abcDDfefDbD (C) abcAAfefAbA (D) Abcddfefdbd 2. 读程序并回答问题。

# include

void fun(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;

}

}

void main()

{

int b[10]={1,2,3,4,5,6,7,8,9,10};

int i,s=0;

fun(b,8);

for(i=6;i<10;i++) s+=b[i];

printf("%d\n",s);

}

(1)函数fun的功能是(27 )。

27 (A) 将数组a的前n个元素逆置(B) 对数组元素进行升序排列

(C) 交换数组第一个元素和最后一个元素(D) 对数组元素进行降序排列

(2)程序的运行结果是(28 )

28 (A) 34 (B) 30 (C) 22 (D) 10

3. 读程序,回答问题

# include

void main()

{

int a=0,x=0;

for(;!x&&a<10;a++)

{ a++;

x++;

}

cout<

}

程序的运行结果为:(29 )。

29 (A) 10 (B) 4 (C) 3 (D) 2

4. 读程序回答问题。

# include

void fun(char *str)

{

int i,j=0;

for(i=0;str[i]!='\0';i++)

if(str[i]!=' ') str[j++]=str[i];

s[j]='\0';

}

void main()

{

char str[80];

int n;

printf("Input a string:");

gets(str);

fun(str);

printf("%s\n",str);

}

程序运行时输入字符串asd_ab_123(注:用“_”表示空格),则程序的运行结果为(30 )

30 (A) asdab123 (B) asd_ab123 (C) asdab_123 (D) asd

5. 读程序,回答问题。

# include

# include

struct mod

{int a,b,c;};

void main()

{ struct mod st[3]={{1,2,3},{4,5,6},{7,8,9}};

int total;

total=st[0].a+st[1].b;

printf("total=%d\n",total);

getch();

}

程序运行输出total=(31 )。

31 (A)5 (B) 6 (C) 7 (D) 8 6. 有下列程序:

# include

void main()

{

int x=10,y=5;

switch(x)

{ case 1: x++;

default: x+=y;

case 2: y--;

case 3: x--;

}

printf("x=%d,y=%d",x,y);

}

程序输出结果为(32 )。

32 (A) x=14,y=4 (B) x=15,y=4

(C) x=10,y=5 (D) x=15,y=5

7. 读程序,回答问题。

# include

int f(int m)

{

static int n=1;

m/=2;

m=m*2;

if(m)

{ n*=m;

return(f(m-2));

}

else return(n);

}

void main()

{

int a,i,j;

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

{

a=f(4+i);

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

}

}

(1)程序第一次的输出结果是(33 )。

33 (A) 8 (B) 0 (C) 64 (D) 4

(2)程序第二次的输出结果是(34 )。

34 (A) 8 (B) 0 (C) 64 (D) 4

8. 有下列程序,若程序编译连接后生成可执行文件CAD.EXE,则输入以下命令行:

cad FILE1 FILE2 (表示回车)

程序的运行结果是(35 )。

# include

void main(int argc,char *argv[])

{

int i;

printf("%d\n",argc);

for(i=0;i<=argc-1;i++)

printf("%s",argv[i]);

printf("\n");

}

35 (A) 2 (B) 3

Cadfile1file2 file1file2

(C) 2 (D)3

CAD.EXE FILE1 FILE2 CAD.EXEFILE1FILE2

9. 下面程序的功能是把316表示为两个数的和,且这两具加数分别能被13和11整除。程序while 语句下划线处应填入(36 )。

# include

void main()

{ int i=0,j,k;

do{

i++;

k=316-13*i;

}while ( );

j=k/11;

printf("316=13*%d+11*%d",i,j);

}

36 (A) k/11 (B)k%11 (C) k (D) k%11==0

10. 读程序并回答问题。

# include

void main()

{

int a=1,b=3,c=5,d=4,x;

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

printf("%d",x);

}

(1)程序执行完后x的值是(37 )。

37 (A)1 (B) 2 (C) 3 (D) 6

(1)当d的值改为2时,程序执行完后x的值是(38 )。

38 (A)1 (B) 2 (C) 3 (D) 6

11. 以下程序的运行结果为(39 )。

# include

void sub(int x,int y,int *z)

{ *z=y-x; }

void main()

{

int a=1,b=2,c=3;

sub(a,b,&a);

sub(b,a,&b);

sub(a,b,&c);

printf("%d,%d,%d\n",a,b,c);

}

39 (A) 1,1,0 (B) 1,2,3 (C) 1,-1,-2 (D) 1,2,1

12. 下面程序的输出结果是(40 )。

# include

# include

void main()

{ char *p1="abc",*p2="ABC",str[50]="xyz";

strcpy(str+3,p2);

strcat(str+2,p1);

printf("%s\n",str);

}

40 (A) xyzabcABC (B) xyzABabc (C) yzabcABC (D) xyzABCabc

注意:①请把下面“程序填空”中各小题答案写在主观题答题纸上

②每一个空只填一个语句或一个语句所缺的部分内容

三、程序填空( 每空2分,共30分)

1. 函数fun的功能是:求出s所指字符串中指定字符的个数,并返回个数。例如,在main函数中,若输入字符串abcdabacaa ,输入指定字符a,则输出结果为5,即字符串abcdabacaa中有5个字符a。

请填空。

# include # define M 81

int fun(char *s,char c) {

int i,cnt=0;

for(i=0;① ;i++) if(*(s+i)==c) cnt++;

② }

void main() {

char str[M],ch;

printf("\nPlease enter a string:"); gets(str);

printf("\nPlease enter a char:"); ch=getchar();

printf("\nThe number of the char is : %d\n", ③ ); }

2. 函数fun 的功能是根据公式1

2)1(......7151311+-++-+-=n s n

计算级数前n 项的和s ,计算结

果通过形参指针s 传回;n 值大于等于0。请填空。

# include void fun(float *s,int n) {

float t=0.0; int i,k=-1;

for(i=0;i<=n;i++) {

k=① *k;

t=t+k*1.0/② ; }

③ }

void main() {

int n; float s;

printf("Input n:"); scanf("%d",&n); fun(&s,n);

printf("s=%f\n",s);

}

3. 下列程序的功能是:求一个M*N二维数组每行元素的和,并将和依次放入一个一维数组中传回主函数。例如,若有以下二维数组:

6 10 2 10 15

17 14 15 8 6

4 18 10 19 12

0 12 1 2 7

则输出为:43 60 63 22。请填空。

# define M 4

# define N 5

# include

fsum(int a[][N]),int b[])

{ int i,j;

for(i=0;i

①;

for(i=0;i

for(j=0;j

②=a[i][j];

}

void main()

{

int x[M][N],y[M],i,j;

printf("The %d x %d Array :\n",M,N);

for(i=0;i

{ for(j=0;j

{ ③=rand()%20;

printf("%6d",x[i][j]);

}

printf("\n");

}

fsum(x,y);

printf("The sum of each line:\n");

for(i=0;i

printf("%6d",y[i]);

printf("\n");

}

4. 下面的程序求ab.c文件中最长的行的字符数len及其行号line。请填空。

# include

void main()

{

int line,i,j=0,len=0;

char c;

FILE *fp;

fp=fopen("ab.c","r");

rewind(fp);

while(fgetc(fp)!EOF)

{ i=1;

while(fgetc(fp)!='\n') ①;

j++;

if(i>len) { len=i; ②; }

}

printf("\n%d\t%d\n",len,line);

③;

}

5. 下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数按位放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其他依此类推。请填空。

# include

int fun(int x,int b[])

{ int k=0,r;

do

{ r=x%2;

b[ ①]=r;

x/= ②;

}while(x);

return ③;

}

void main()

{

int k,n,a[20];

printf("\nEnter n:");

scanf("%d",&n);

k=fun(n,a);

while(k>=0)

printf("%d",a[k--]);

}

四川省普通高等学校计算机应用知识和能力

第二十七次等级考试

二级(C与C++语言) 笔试试卷

时间: 2007年10月27 日

上午9:00—11:00

第一部分

软件技术基础

(共15分)

一、是非判断题(每小题1分,共10分)

( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )

1. 数组也是一种数据结构,一维数组就是一种顺序表结构。( 1 )

2. 递归算法的程序结构比迭代算法的程序结构更为精炼。( 2 )

3. 进程调度按一定的调度算法,从就绪队列中挑选出合适的进程。( 3 )

4. 在单处理器系统中,程序的并发执行,实质上是程序的交替执行。( 4 )

5. 数据的基本单位是数据元素。( 5 )

6. 分页存储管理中,页面可以映射到不连续的内存块中。( 6 )

7. 通道方式能实现外设与CPU之间直接进行数据交换。( 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. 以下程序的输出结果是(16 )。

# include

void main()

{

int a=-1,b=4,k;

k=(++a<0)&&!(b--<=0);

printf("%d %d %d\n",k,a,b);

}

16 (A)0 0 4 (B) 1 0 3 (C) 0 0 3 (D) 1 0 4

2. 以下对结构体变量stu1中成员age的不正确引用是(17 )。

struct st

{

int age;

int num;

}stu1,*p;

p=&stu1;

17 (A) stu1.age (B) age (C) p->age (D) (*p).age

3. 在下列条件语句中,功能与其他语句不同的是(18 )。

18 (A) if(a) printf("%d\n",x); else printf("%d\n",y);

(B) if(a==0) printf("%d\n",y); else printf("%d\n",x);

(C) if(a!=0) printf("%d\n",x); else printf("%d\n",y);

(D) if(a==0) printf("%d\n",x); else printf("%d\n",y);

4. 以下叙述中完全正确的是(19 )。

19 (A) C语言中的文件是流式文件,因此只能顺序存取文件

(B) 对一个已存在的文件进行了写操作后,原有文件中的全部数据必定被覆盖

(C) 在一个程序中当对文件进行了写操作后,必须先关闭该文件后再打开,才能读到第

一个数据

(D) 当对文件的读写操作完成之后,必须将它关闭,否则可能导致数据丢失

5. C++中,下列关键字中哪个不是类定义中使用的关键字(20 )。

20 (A) class (B) public (C) switch (D) private

6. 以下程序的输出结果是(21 )。

# include

# define f(x) (x*x)

void main()

{

int i1,i2;

i1=f(8)/f(4);

i2=f(4+4)/f(2+2);

printf("%d,%d\n",i1,i2);

}

21 (A) 64,28 (B) 4,4 (C) 4,3 (D) 64,64

7. 有下面的说明和语句,则输出结果是(22 )。

char a=9,b=020;

printf("%o\n",~a&b<<1);

22 (A) 0377 (B) 40 (C) 32 (D) 以上答案均不正确8. 下列描述,错误的是( 23 )。

23 (A) n维数组可以用n级指针来表示

(B) 数组下标从0开始

(C) 一个二维数组可以用一维指针数组表示

(D) 使用没有赋地址值的指针,只有当程序比较长时才可能赞成系统崩溃

9. C语言中局部变量的存储类别默认值是( 24 )。

24 (A) 自动(auto)(B) 静态(static)

(C) 寄存器(register)(D) 外部(extern)

10. 下列关于C++重载函数的描述中,错误的是( 25 ) 。

25 (A) 重载函数的参数个数和类型至少有一个不同

(B) 重载函数的参数个数可以相同

(C) 重载函数的参数个数不同但类型可以相同

(D) 重载函数的返回值类型必须相同

二、读程序回答问题( 每个选择3分,共45分)

1. 阅读下面程序,回答问题。

# include

void main()

{

int i,j,row,column,m;

static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};

m=array[0][0];

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

for(j=0;j<3;j++)

if(array[i][j]

{

m=array[i][j];

row=i;

column=j;

}

printf("%d,%d,%d\n",m,row,column);

}

该程序的功能是(26 )。

26 (A) 计算二维数组的元素和

(B) 求二维数组的最小值及其下标

(C) 对二维数组进行排序

(D) 求二维数组的最大值及其下标

2. 阅读下面程序,回答问题。

# include

# include

void main()

{

int i=0,n=0;

char s[80],*p;

p=s;

strcpy(p,"This is test!");

for(;*p!='\0';p++)

if(*p==' ')

i=0;

else if(i==0)

{

n++;

i=1;

}

printf("n=%d\n",n);

}

该程序的功能是(27 )。

27 (A) 统计字符串中的单词个数

(B) 统计字符串中的空格个数

(C) 统计字符串中的字母个数

(D) 统计字符串中全部字符个数

3. 读程序,回答问题

# include

void main()

{

int i,m=0,n=0,k=0;

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

switch(i%10)

{

case 0: m++;n++;break;

case 10:n++;break;

default: k++,n++;

}

printf("%4d%4d%4d\n",m,n,k);

}

28 (A) 1 3 2 (B) 1 4 2

(C) 0 1 1 (D) 0 3 2

4. 读程序,回答问题。

# include

# include

void main(int argc,char *argv[])

{

int i=1,n=0;

while(i

{

n=n+strlen(argv[i]);

i++;

}

printf("%d\n",n);

}

若该程序生成的可招待文件名为2-4.exe,运行时输入命令行:

2-4 123 45 67

则程序的运行结果是(29 )。

29 (A) 3 (B) 5 (C) 7 (D) 11 5. 读程序,回答问题。

# include

int a=2;

int f(int n)

{

static int a=3;

int t=0;

if(n%2)

{ static int a=4;

t+=a++;

}

else

{ static int a=5;

t+=a++;

}

return t+a++;

}

void main()

{

int s=a,i;

for(i=0;i<3;i++) s+=f(i);

printf("%d\n",s);

}

程序运行结果是(30 )。

30 (A)26 (B) 28 (C) 29 (D) 25

6. 读程序,回答问题。

# include

struct mod

{ int a,b,c;};

void main()

{ struct mod st[3]={{1,2,3},{4,5,6},{7,8,9}};

int total;

total=st[0].a+st[1].b;

printf("total=%d\n",total);

}

程序的运行结果是(31 )。

31 (A) total=5 (B) total=6 (C) total=7 (D) total=8

7. 读程序,回答问题。

# include

pic(int len,char c)

{ int k;

for(k=1;k<=len;k++)

putchar(c);

}

void main()

{

int i=4,j;

pic(27,' ');

j=i;

pic(i+2*j-2,'*');

putchar('\n');

for(j-=2;j>=0;j--)

{

pic(30-j,' ');

pic(i+2*j,'*');

putchar('\n');

}

}

程序的运行结果是(32 )。

32 (A) (B) (C) (D)

* ********** **** **********

*** ********** ****** ********

***** ********** ******** ******

******* ********** ********** ****

8. 以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符集资转储到链表的各个结点中,请选择填空。

# include

struct node

{ char data;

struct node *next;

}

( 33 ) CreatList(char *s)

{ struct node *h,*p,*q;

h=(struct node *)malloc(sizeof(struct node));

p=q=h;

while(*s!=NULL)

{ p=(struct node *)malloc(sizeof(struct node));

p->data=( 34 );

q->next=p;

q=( 35 );

s++;

}

p->next=NULL;

return h;

}

void main()

{ char str[]="link list";

struct node *head;

head=CreatList(str);

…………

}

33 (A) char * (B) char (C)struct node (D) struct node *

34 (A) *s (B) s (C) *s++ (D) *(s)++

35 (A) p->next (B) p (C) s (D) s->next

9. 读程序并回答问题。

# include

# include

void fun(char *s,char *t)

{

char k;

k=*s;

*s=*t;

*t=k;

s++;t--;

if(*s) fun(s,t);

}

void main()

{

char str[10]="abcdefg",*p;

p=str+strlen(str)/2+1;

fun(p,p-2);

printf("%s\n",str);

}

程序中的fun函数被调用的次数是(36 )。

36 (A) 2 (B)3 (C) 4 (D) 5

程序的运行结果为(37 )。

37 (A) abcdefg (B)defgabc (C) acegbdf (D) gfedcba 10. 读程序并回答问题。

# include

void main()

{

int m[12],k;

int *p[3],sum=0;

for(k=0;k<12;k++)

{ m[k]=2*k;

if(k<3)

p[k]=m+2*k*k;

}

for(k=0;k<3;k++)

sum+=(*(p+k))[4-k];

printf("%d\n",sum);

}

①程序的运行结果是(38 )。

38 (A) 18 (B) 28 (C) 38 (D) 8

②int *p[3]定义的是(39 )。

39 (A) 指针数组(B) 指向函数的指针

(C) 指向一维数组的指针(D) 指向指针的指针

11. 以下程序的输出结果是(40 )。

# include

# define FUN(x,y) x

void main()

{

int x=5,y=10,z;

z=10*FUN(x+y,x*y);

printf("%d\n",z);

}

40 (A) 100 (B) 150 (C) 15 (D) 60

注意:①请把下面“程序填空”中各小题答案写在主观题答题纸上

②每一个空只填一个语句或一个语句所缺的部分内容

三、程序填空( 每空2分,共30分)

1. 下面函数的功能是将一个字符串逆序存放,请填空。

# include

# include

void fun(char str[])

{

①;

int i,j;

for(i=0,j=strlen(str); ②;i++,j--)

{

m=str[i];

str[i]= ③;

str[j-1]=m;

}

printf("%s\n",str);

}

2. 下面程序功能是将命令行指定的一个文件内容追加到另一个文件末尾。

# include

void main(int argc,char *argv[])

{ FILE *fp1,*fp2;

char ch;

if(argc!=3)

printf("usage:linenum filename\n");

else

if((fp1=fopen(①,"a"))==NULL)

{ printf("Can't open %s\n",argv[1]);

return;

}

else if((fp2=fopen(argv[2],"r"))==NULL)

{ printf("Can't open %s\n",argv[2]);

return;

}

else

while((②)!=EOF)

③;

fclose(fp1);

fclose(fp2);

}

3. 程序功能是:用筛选法求2~100之间的所有素数。方法是:首先将2~100的数放入一个数组中,然后从2开始,将数组中所有2的倍数的数置为0;接着从数组中找到下一个非0数,并将数组中所有该的倍数的数置为0;依此类推,直到所找到的下一个数大于100为止,最后将数组中不为0的数输出即为2~100之间的素数,一行输出10个。

# include

void main()

{

int a[100];

int i,j,count=0;

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

a[i]= ①;

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

for(j=i+1;j<99;j++)

if( ②) a[j]=0;

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

if(a[i]!=0)

{

printf("%4d",a[i]);

count++;

if( ③) printf("\n");

}

}

4. 下面程序的功能是:将一个数字字符串转换为一个整数。例如,有字符串“-1234567”程序将它转换为整数-1234567。

# include

# include

long fs(char *p)

{ int i=0,sign=1;

long num=0;

if(p[i]=='-')

sign=①;

if(p[i]=='+'||p[i]=='-')

i=1;

else i=0;

while(p[i]!='\0')

{

②=10;

num+=p[i]-48;

i++;

}

num=sign*num;

return(num);

}

void main()

{ char s[9];

long n;

printf("Enter a string:\n");

gets(s);

n=fs(s);

printf("③\n",n);

}

5. 下面程序的功能是从键盘输入一组小写字母,并保存在字符数组str中。通过fun()函数把字符数组str中ASCII码为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入“abcdefg”,输出“AbCdEfG”

# include

# define N 80

void fun(char s[])

{

int i;

for(①; ②;i++)

{

if(③)

s[i]-=32;

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

2011年技能考试试卷C语言(真题)

第一部分【程序填空】 第一套: 题目:函数gcd()计算整型数组a中相邻两元素的最大公约数,最小公倍数,其中最大公约数存入数组b中,最小公倍数存入数组c中。 --------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。 --------------------------------------------------------- #include #include void gcd(int a[],int n,int b[],int c[]){ int i,x,y,z; /***********SPACE***********/ for(i=0;i<【?】;i++){ x=a[i]; y=a[i+1]; while(z=x%y){ x=y;y=z; } b[i]=y; /***********SPACE***********/ c[i]=a[i]*a[i+1]/【?】; } } int main(){ int a[5]={8,12,5,7,14}; int b[4],c[4]; int i; gcd(a,5,b,c); for(i=0;i<5;i++) printf("%d\t",a[i]); printf("\n"); for(i=0;i<4;i++) printf("%d\t",b[i]); printf("\n"); for(i=0;i<4;i++) printf("%d\t",c[i]); printf("\n"); getch(); return 0; }

大学经典C语言编程试题

1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include<> void main() { int hcf(int,int); /*函数声明*/ int lcd(int,int,int); /*函数声明*/ int u,v,h,l; printf("Please inputtwo numbers:\n"); scanf("%d,%d",&u,&v); h=hcf(u,v); printf("",h); l=lcd(u,v,h); printf("",l); } int hcf(int u,int v) { int t,r; if(v>u) {t=u;u=v;v=t;} while((r=u%v)!=0) {u=v;v=r;} return(v); } int lcd(int u,int v,int h) { return(u*v/h); } 2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。#include<> int letter,digit,space,others; void main() { void count(char[]); char text[80]; printf("Please inputstring:\n"); gets(text); printf("string:\n"); puts(text); letter=0; digit=0; space=0; others=0; count(text); printf("letter:%d,digit:%d,space:%d,others:%d\n",letter,digit,space,others);

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

C语言考试试题

试题 课程名称C语言程序设计适用时间 试卷类别 A 适用专业、年级、班 一、选择题(每小题2分, 2×25=50分) 1.下列叙述错误的是( )。 A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.以下叙述不正确的是( )。 A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.C语言中最简单的数据类型包括( )。 A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)字符型、实型、逻辑型 4.C语言中运算对象必须是整型的运算符是( )。 A)%= B)/ C)= D)<= 5.若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 6.下列运算符中优先级最高的是( )。 A) < B) + C) && D) ! = 7.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是( )。 A) int B) float C) double D) char 8.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( )。 A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值 9.设整型变量a,b的值均为8, printf("%d,%d",(a++,++b),b--);的输出是( )。 A)8,8 B)8,7 C)9,9 D)8,9 10.若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为( )。 A)10 20 B)10,20 C)1020 D)10:20 11.判断char型变量ch是否为大写字母的正确表达式是( )。 A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch) 12.有如下程序 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\n",a,b);} 该程序的输出结果是( )。 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 13.以下程序的功能是:按顺序读入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);

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 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.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

经典练习C语言编程的题目及答案整理

1.逆序输出正三位数 #include int main() { int input,output= 0; scanf("%d",&input); while(input != 0) { output = output*10 + input%10; input /= 10; } printf("%d\n",output); return 0; } 2.百元找零函数 #include int main() { int amount=100; int price=0; printf("请输入金额(元)"); scanf("%d",&price); printf("请输入票面"); scanf("%d",&amount); int change=amount-price; printf("找您%d元。\n",change); return 0; } 3.求平均数 #include int main() { int a,b; scanf("%d %d",&a,&b);

double c=(a+b)/2.0; /* scanf("%d",&amount); 这是注释,我随便放的,没意义 int change=amount-price;*/ printf("%d和%d的平均值是%f\n",a,b,c); return 0; } 4.写出程序的输出: int i=1; switch ( i/3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); } 正确答案是:zeroonetwo。 5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53+33。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<=N<=7)。 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。 输入样例: 3 输出样例: 153 370 371 407

C语言考试试卷及答案

2011-2012学年第一学期 C语言程序设计A 课程A卷考试题 共 4 页此第 1 页成绩 一、单项选择题(每小题2分,共40分) 1. C语言中合法的字符常量是() A.n B.’\n’ C.110 D.”n” 2. 有以下程序: main( ) { char ch=’A’; printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1); } 程序运行后的输出结果是() A. ch(1)=65,ch(2)=A B. ch(1)=97,ch(2)=A C. ch(1)=65,ch(2)=B D. ch(1)=97,ch(2)=B 3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是() A. a==-b&&a%2==0 B. a!=b&&a+b==0&&a%2 C. !(a%2)&&a==-b D.a%2==0&&a+b==0 4. 以下程序段中语句” printf("i=%d,j=%d\n",i,j);”的执行次数是() int i, j; for(i=3;i ;i--) for(j=1;j<5;j++) printf("i=%d,j=%d\n",i,j); A. 12 B. 20 C. 15 D. 24 5. 执行以下程序段后,x[2]的值是() int x[10]={1,2,3,4,5,6,7,8,9,10},i,j,t; i=0;j=9; while(i

c语言试卷第四套

若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=i+32)后,x的值为:(D). A.52 B.16 C.4 D.36 整型变量x=1,y=3,经下列计算后,x的值不等于6的是(D)。 A.x=y*4/2 B.x=9-(--y)-(--y) C.x=(x=1+2,x*2) D.x=y<2?6:5 以下程序的输出结果为(A)。 main() {int i=010,j=10; printf("%d,%d\n",++i,j--); } A.9,10 B.10,9 C.010,9 D.11,10 如下说法不正确的是(D). A.若b为假a为真,则 a||b为真 B.若b为真a为假,则 a||b为真 C.若b为真a为真,则 b&&!a为假 D.若b为假,则!b+1为假 下列(C)表达式的值为真,其中a=5;b=8;c=10;d=0 A.(a*2-c)||d B.a*2>8+2 C.a-b=10) ; B.do{ i=1;s=1;s=s*i;i++;}while(i<=10) ; C.i=1;s=1;do {s=s*i; i++; }while(i<=10) ; D.i=1;s=1; do { s=s*i; i++;}while(i>=10) ; 以下正确的描述是(A). A.continue语句用来终止本次循环,继续下一次循环。 B.switch语句中不能出现continue语句 C.在循环中break语句不能独立出现 D.goto语句只能用于退出多层循环

精选C语言试卷(带答案).

2006-2007学年第二学期考试试卷A卷 考试科目C语言程序设计考试方式闭卷完成时限2小时 拟题人审核人批准人2007年7 月 5 日机械、电气、信息、生化、轻工、经管、理学院2006年级各理工科专业 说明: 1.应将全部答案写在答卷纸对应的题号处;否则作无效处理; 2.编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸; 3.考试完成后,必须将试卷与答卷同时交回。 一、判断题(10小题,每题1分,共10分;用√表示正确,用×表示错误)1.在循环体内使用break语句和continue语句的作用相同。 2.函数返回值的类型最终取决于函数定义时形参的类型。 3.else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。 4.从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。 5.1/2的结果是0,所以1.0/2的结果也是0。 6.a=b=c=5可以理解为a=(b=(c=5))。 7.假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。 8.for(;;)等价于while(1)语句。 9.假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。 10.char *sp ={"welcome"};可以写成char *sp="welcome"; 。 二、单选题(16小题,每题1分,共16分) 1.以下数组定义中错误的是: (A) int x[][3] ={0}; (B) int x[2][3]={{1,2},{3,4},{5,6}};

(C) int x[][3]={{1,2,3},{4,5,6}}; (D) int x[2][3]={1,2,3,4,5,6}; 2.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为: (A)EOF (B)NULL (C) 0 (D)非0值 3.有以下程序: main() {int y=10; while(y--) ; printf(“y=%d\n”,y); } 程序执行后的输出结果是: (A) y=0; (B)y=-1; (C) y=1 (D)while构成无限循环 4. 若有以下宏定义: #define N 2 #define Y(n) (N+1)*n 则执行语句int z; z=2*N+Y(5);后的值是 (A) 50 (B)34 (C)19 (D)无定值 5.以下叙述中错误的是: (A)c程序必须由一个或者一个以上的函数组成。 (B)函数调用可以作为一个独立的语句存在。 (C)若函数有返回值,必须通过return 语句返回。 (D)函数形参的值也可以传回给对应的实参。 6.设有如下定义的变量 union data { int i; char ch; float f; }b; 则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,float类型占4个字节): (A) 4 (B)5 (C) 6 (D)7 7.以下叙述中错误的是:

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

c语言期中考试试题及答案

中国民航大学2009-2010学年第二学期 《C 语言程序设计》期中考试试卷 课程编号:03402513 试卷类型: A 卷 考试形式:笔试 考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C 语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C 程序的执行是(【2】) 。 【2】 A) 从本程序的主函数开始,到本程序的主函数结束

B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的

C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关 8、下列四组(八进制或十六进制)常数中,正确的一组是(【8】)。【8】 A) 016 0xbf 18 B) 0abc 017 0xa C) 010 -0x11 0x16 D) 0A12 7FF -123 9、下列四组转义字符中,合法的一组是(【9】)。 【9】 A)‘\t’‘\\’‘\n’ B)‘\’‘\017’‘\x’

C语言考试试题

1.若x为int型变量,则执行以下语句后,x的值为-60。 x=6; x+=x-=x*x; x=x-x*x=-30 x=x+x=-60 2.若有定义int a[2][3]; 则对a数组的第i行第j列元素地址的正确引用为a[i]+j。 3.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是*p=*&j。 4.以下叙述正确的是define和if都不能定义为用户标识符。 5. 以下程序的输出结果是2。 #define SQR(X) X*X main() { int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); a/=k+k*m+m/k+k*m+m printf("%d\n",a); } 6. 以下程序的输出结果是4。 main() {int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) for(j=i;j<=i;j++) t=t+b[i][j]; { t=t+b[i][j];} printf("%d\n",t); printf("%d\n",t); }_ 7. 编一个程序,打入星期号,输出该星期的英文名字。例如,输入"1"则输出"Monday",说明:星期日编号为0,要求用指针数组处理。 main() { char *name[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday", "Saturday"}; int n; printf("\nInput the number(0-6):"); scanf("%d", &n); if ((n< 7) && (n>=0)) printf("\nThe name is: %s",name[n]); else printf("\nInput error"); } 8. 局部变量是静态存储变量。错误 9. "文件包含"处理是指一个源文件可以将另一个源文件的内容全部包含进来。正确 10. 若有定义:int *p1,*p2;则p1+p2无实际意义。正确 11. 若在函数内定义形参数组a:int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。错误 12. 以下不能正确定义二维数组的选项是int a[2][]={{1,2},{3,4}};。 13. 以下程序的输出结果是6 15 15。 int d=1; fun(int p) { static int d=5; d+=p; printf("%d ",d); return(d); } main( ) { int a=3; printf("%d \n", fun(a+fun(d))); }

C语言程序设计试题第3套

C语言程序设计试题(第3套) 一、单项选择题(30分,每题2分) 1.下面关于C语言的说法,错误的是______。 A、一个C程序总是从执行main开始。 B、C程序可以用/<*……*>/ 对程序作注释。 C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。 D、在C程序中,数据定义的最后必须写上一个分号。 2.判断字符串s1是否大于字符串s2,应当使用。 A、if (s1>s2) B、if (strcmp(s1,s2)) C、if (strcmp(s2,s1)>0) D、if (strcmp(s1,s2)>0) 3. 下列表达式错误的是______。 A、4/7 B、4.0/7.0 C、(-4)%(-7) D、4.0%7.0 4. 以下能定义为用户标识符的是______。 A、scanf B、printf C、_3com_ D、int 5. 能正确表示a和b 同时为正或同时为负的逻辑表达式是______。 A、(a>=0‖b>=0)&&(a< 0‖b<0) B、(a>=0&&b>=0)&&(a< 0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 6. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1%c2 ; 则执行后,c3的值是______。 A、2.0 B、2 C、3.0 D、3 7.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。 A、scanf("%d%d%d",i,j,k); B、scanf("%d %d %d",&i,&j,&k); C、scanf("%d,%d,%d",&i,&j,&k); D、scanf("%d,%d,%d",i,j,k); 8. 以下程序输出结果是。 A、7 B、6 C、5 D、4 main()

c语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题2】以下对一维整型数组a 的正确说明是。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【题3】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题8】若有说明:int a[3][4];则对a 数组元素的非法引用是。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题9】以下能对二维数组a 进行正确初始化的语句是。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{},{1,1}}; 【题10】以下不能对二维数组a 进行正确初始化的语句是。 A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

C语言程序设计模拟试题A(附答案)

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5]={0,1,2,3,4,5};B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) {printf(“*”); x- -; } A) ****B) ***C) **D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。 解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。

A)9B) 8C) 5D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 A) 数组的首地址B) 数组第一个元素的值 C) 数组中全部元素的值D) 数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。 A)void B)double C)int D)char 8、下面不能正确进行字符串赋值操作的语句是(C)。 A) char s[5]={"ABCD"};B) char s[5];s="ABCD"; C) char *s;s="ABCDEF";D) char *s="ABCD"; 解析:这样理论上的没错的把s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样char s[] = "ABCDEF"; 或char s[8];strcpy(s, "ABCDEF"); 9、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(C)。 A)++p B)++(*p)C) *(++p)D) *(p+=2) 解析: A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x,int y) { int m=3; return( x*y-m); } main( ) { int a=7,b=5;

相关文档
最新文档