当前位置:文档之家› c语言期末复习试题,上机练习

c语言期末复习试题,上机练习

c语言期末复习试题,上机练习
c语言期末复习试题,上机练习

C语言试题1

一填空题(15分)

1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。

2.设int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是()。

3.下面程序段的输出结果是()。

int a=1234; a=a&0377; printf(“%d %o\n”,a,a);

4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。

char a[3];

5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。

#define PR 80

#define PP PR+403

6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在C文件中,数据存在的两种代码形式是()和()。

8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。

9.若有int a[3]={10,12,30};则a+1是()的地址,*(a+2)=()。

二判断对错(5分,对的划“√”,错的划“×”

1.在Turbo C中,整型数据在内存中占2个字节。()

2.表达式1/4+2.75的值是3。()

3.结构体类型只有一种。()

4.函数若无返回值,则它一定无形参。()

5.C语言只能处理文本文件和二进制文件。()

三选择题(20分)

1.设int a=12; 表达式a+=a-=a*=a的值是()。

A 12

B 144

C 0

D 132

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

main( )

{ int a=011;

printf(“%d\n”,++a);

}

A 12

B 11

C 10

D 9

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

#define ADD(x) (x)+(x)

main()

{ int a=4,b=6,c=7,d=ADD(a+b)*c;

printf(“d=%d”,d);

}

A d=70

B d=140

C d=280

D d=80

4.下面的选项中正确的赋值语句是(char a[5],*p=a;)()。

A p=“abcd”;

B a=“abcd”;

C *p=“abcd”;

D *a=“abcd”;

5.若k为整形,则while循环执行()次。

k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”);

A 10

B 9

C 0

D 1

6.数组名作为实参传递给形参时,数组名被处理为()。

A该数组的长度 B 该数组的元素个数 C 该数组的首地址 D 该数组中各元素的值7.两个指针变量不可以( )。

A. 相加 B 比较 C 相减 D 指向同一地址

8.若有以下程序段,则值为6的表达式是()。

struct st{ int n;struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,…\0?},*p; p=&a[0];

A p++->n

B p->n++

C (*p).n++

D ++p->n

9.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。

A fp=fopen("file","r");

B fp=fopen("file","w");

C fp=fopen("file","r+");

D fp=fopen("file","w+");

四写出下列程序的运行结果。(28分)

1.main( )

{ int a[6]={10,6,23,-90,0,3},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

{ invert(s,i+1j-1);

t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;

}

}

2.f1(int a)

{ int b=0; static int c=3;

b+=1; c++;

return(a+b+c);

}

main()

{ int a=1,i;

char s1[10]=“java”,s2[10]=“basic”,s[10];

for(i=0;i<3;i++) printf("%d ",f1(a));

printf(“\n”);

if(strcmp(s1,s2)) { strcpy(s,s1); puts(s);}

printf(“%d,%s\n”,strl en(s2),strcat(s2,s1));

}

3.#define MAX 100

main()

{ int f[MAX],i,j,k=2,m=5;

for(i=0;i<=m;i++) f[i]=1; f[k-1]=2;

for(i=k;i<=m;i++)

for(j=i-k;j<=i-1;j++) f[i]+=f[j];

printf("%d%5d%5d\n",k,m,f[m]);

}

五阅读下列程序,在处填入适当内容,使程序完整。(32分)

1.求100~200间的全部素数。

(1)

main()

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

for(m=101;m<=200;m+=2)

{ if(n%10==0) printf("\n");

k=sqrt(m);

for(i= (2);i<=k;i++) if(m%i==0) (3);

if(i== (4) )

{ printf("%d ",m);n++;}

}

}

2.用选择法对数组中的10个字符按由大到小排序。

void sort( (1))

char a[ ]; int n;

{ int i,j,k;

char t;

for (i=0;i

{ (2);

for(j=i+1;j

if ( (3)) k=j;

t=a[k];a[k]=a[i];a[i]=t;}

}

main( )

{ char s[10];

int i;

for(i=0;i<10;i++) scanf(“%c”,&s[i]);

(4)

printf(“the sorted array:\n”);

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

printf(“%c”, (5) );

printf(“\n”);

}

33.输入3×4数组,用指针方法实现将每行中的最小数与第0列元素对调。main()

{ int a[3][4],i,j,*p=a[0];

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

for(j=0;j<4;j++) scanf(“%d”,p++);

for(p=&a[0][0];p

swap(p);

(2) ;

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

{ for(j=0;j<4;j++) printf(“%3d”,*p++);

printf(“\n”);}

}

swap(int (3) )

{ int min,i,*p2=p1,*p3;

(4) ;

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

{ if(*p2<*p3) p3=p2; (5) ;

}

min=*p1;*p1=*p3;*p3=min;

}

2002试题2

一填空题(20分,每空1.5分)

1.当执行完以下语句后,变量a的值为(),b的值为(),c的值为()。

a=6; b=++a; c=--a;

2.已知a=3、b=2,则表达式a*=b+8的值是()。

3.下面程序段的输出结果是()。

int a=125; printf(“%d\n”,a>>4);

4.a数组定义如下,a数组中可用最小下标值是(),最大下标值是()。

char a[3];

5.设有以下宏定义,则执行赋值语句a=ADD(4+6)*7;(a为int型变量)后,a的值是()。#define ADD(x) (x)+(x)

6.若有以下说明、定义和语句,则对x.b成员的另外两种引用方式是:()和()。

struct st

{ int a;

struct st b;

} *p,x;

p=&x;

7.在C中,文件指针变量的类型只能是()。

8.在C中文件结束标志EOF只可用于()文件。

9.a数组定义如下,若使数组a中存放字符串“friend” ,写出为数组a赋值的语句()。char a[10];

二判断对错(10分,每题1分。对的划“√”,错的划“×”)

1.在Turbo C中,实型数据在内存中占4个字节。()

2.被main函数调用的函数只能是库函数。()

3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。()

4.算术运算符和赋值运算符的结合方向均由左自右。()

5.定义在main函数后的任何函数都需在main中进行函数声明。()

6.一个函数中只允许有一条return语句。()

7.任何数组在使用时必须先定义。()

8.在int *p;和语句printf(“%d”, *p);中的*p含义相同。()

9.在定义枚举时,枚举常量可以是标识符或数字。()

10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。()

三选择题(20分,每题2分)

1.若有代数式,则错误的C语言表达式是()。

A a*e/c/b

B a*e/b/c

C a*e/b*c

D a/b/c*e

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

main( )

{ int a=7,b=5;

printf(“%d\n”,b=b/a);

}

A不确定值 B 5 C 1 D 0

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

main()

{ int k1=1,k2=2,k3=3,x=15;

if(!k1) x--;

else if(k2) if(k3) x=4;else x=3;

printf(“x=%d\n”,x);

}

A x=4

B x=15

C x=14

D x=3

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

main()

{ char s1[20]=“China”,s2[20]=“for”,s[10];

if(strcmp(s1,s2)) printf(“%s\n”, strcat(s2,s1));

else printf(“%d\n”,strlen(s1));

}

A Chinafor

B 5

C forChina

D 3

5.C语言中函数调用的方式有()。

A函数调用作为语句1种 B 函数调用作为函数表达式1种

C 函数调用作为语句或函数表达式2种

D 函数调用作为语句、函数表达式或函数参数3种

6.关于return语句,下列正确的说法是()。

A可以在同一函数中出现多次 B 必须在每个函数中出现

C 只能在除主函数之外的函数中出现一次

D 在主函数中不能出现

7.已知职工记录描述如下,设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是()。

struct worker

{ int no; char name[20]; char sex;

struct birth{ int day; int month; int year;}a;

};

struct worker w;

A day=25;month=10;year=1993;

B w.birth.day=25; w.birth.month=10; w.birth.year=1993;

C w.day=25; w.month=10; w.year=1993;

D w.a.day=25; w.a.month=10; w.a.year=1993;

8.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。

A存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数9.若有下面的变量定义,以下语句中合法的是()。

int i,a[10],*p;

A p=a+2;

B p=a[5];

C p=a[2]+2;

D p=&(i+2);

10.若有以下的定义和语句,则值为12的表达式是()。

struct wc{ int a;int *b;}*p;int x0[]={11,12},x1[]={31,32};

static struct wc x[2]={100,x0,300,x1};p=x;

A *++p->b

B ++p->a

C p->b

D *(p++)->b

四写出下列程序的运行结果(25分,每题5分)

1.main()

{ int number=0;

while(number++<=1) printf("*%d,",number);

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

}

2.#define N 7

main()

{ int i,j,a[N][N];

for(i=1;i

{ a[i][i]=1; a[i][1]=1; }

for(i=3;i

for(j=2;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];

for(j=1;j<=4;j++) printf("%2d",a[4][j]);

printf("\n");

}

3.hcf(int u,int v)

{ int a,b,c,r;

if(u>v) { c=u; u=v; v=c; }

a=u; b=v;

while((r=b%a)!=0) { b=a; a=r;}

return(a);

}

main()

{ int u,v,h,l;

u=32; v=48;

h=hcf(u,v);

printf("H.C.F=%d\t",h);

}

4.main()

{ int a[]={1,2,3,4,5,6},*p;

p=a; *(p+3)+=2;

printf("%d,%d\n",*p,*(p+3));

}

5.main()

{ int y;

fac(4,&y);

printf(“y=%d\n”,y);

}

fac(int n,int *t)

{ int s;

if((n==1)||(n==0)) *t=1;

else { fac(n-1,&s); t=n*s; }

}

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

1.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。)main()

{

int i,a,m;

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

{

for(m=0,a=l;a<=i/2;a++)

if(!(i%a)) (1) ;

if( (2) ) printf("%4d",i);

}

}

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

#define N 10

char str[N];

main()

{

int i,flag;

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

scanf("%c",&str[i]);

sort(_(1)__);

for(i=0;i

printf("%c",str[i]);

printf("\n");

}

sort(str)

char str[N];

{ int i,j;

char t;

for(j=1;j

for(i=0;i

if(str[i]> (2) )

{ t=str[i];

______(3)______;

______(4)______;

}

}

3.3.将一个磁盘文件中的信息复制到另一个磁盘文件中。

#include "stdio.h"

main()

{ (1) *in,*out;

char ch,infile[10],outfile[10];

printf("Enter the infile name:\n");

scanf("%s",infile);

printf("Enter the outfile name:\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{ printf("Cannot open input file.\n");

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{ printf("Cannot open output file.\n");

exit(0);

}

while(!feof(in))

fputc( (2) ,out);

(3) ;

(4) ;

}

4.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

{

if(arr[i]>*pt1) (1) ;

if(arr[i]<*pt2) (2) ;

}

}

2002试题3

一填空题(20分)

1.C语言表达式5>2>7>8 的值是()。

2.当执行完以下语句后,变量a的值为(),d的值为(),e的值为()。a=6; b=++a; c=--a; d=a++; e=a--;

3.下面程序段的输出结果是()。

char a=111; a=a^00; printf(“%d %o\n”,a,a);

4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。

char a[3];

5.设有以下宏定义,则执行赋值语句a=PP+20;(a为int型变量)后,a的值是()。

#define PR 8

#define PP PR*40

6.定义结构体类型时,应使用关键字(),定义枚举类型时,应使用关键字()。7.C文件可以分为两种类型,它们是()文件和()文件。

8.若有char a[3]=“as”;则*a=(),*(a+2)=()。

二判断对错(5分,对的划“√”,错的划“×”)

1.。()

2.表达式1/4+2.75的值是3。()

3.结构体类型只有一种。()

4.函数若无返回值,则它一定无形参。()

5.C语言只能处理文本文件和二进制文件。()

二判断对错(10分,每题1分。对的划“√”,错的划“×”)

1.在Turbo C中,实型数据在内存中占4个字节。()

2.被main函数调用的函数只能是库函数。()

3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。()4.算术运算符和赋值运算符的结合方向均由左自右。()

5.定义在main函数后的任何函数都需在main中进行函数声明。()6.一个函数中只允许有一条return语句。()

7.任何数组在使用时必须先定义。()

8.在int *p;和语句printf(“%d”, *p);中的*p含义相同。()

9.在定义枚举时,枚举常量可以是标识符或数字。()

10.用fopen(“file1”,”r+”)方式打开的文件可进行修改。()

三选择题(20分,每题2分)

1.a,b为整形变量,二者均不为0,以下关系表达式中恒成立的是()。

(A) a*b/a*b==1 (B) a/b*b/a==1

(C) a/b*b+a%b==a (D) a/b*b==a

2.C语言源程序的基本单位是()。

(A) 过程(B) 函数(C) 子程序(D) 标识符

3.以下函数调用语句中含有()个实参。

func((e1,e2),(e3,e4,e5));

(A) 2 (B) 3 (C) 5 (D) 语法错误

4.以下的for 循环()。

for(x=0,y=0;(y!=123)&&(x<4);x++) ;

(A) 执行3 次(B) 执行4 次

(C) 循环次数不定(D) 是无限循环

5.以下程序的输出结果为()。

#define N 2

#define M N+2

#define CUBE(x) (x*x*x)

#include "stdio.h"

main( )

{ int i=M;

i=CUBE(i);

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

}

(A) 17 (B) 64 (C) 125 (D) 53

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

main( )

{ int i=010,j=10,*pi,*pj;

pi=&i; pj=&j;

printf("%d.%d\n",*pi,*pj);

}

(A) 10,10 (B) 8,10 (C) 010,10 (D) 8,8

7.在下列程序段中,枚举变量c1,c2 的值依次是(),()。

enum color { red,yellow,blue=4,green,white} c1,c2;

c1=yellow; c2=white;

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

(A) 1 (B) 3 (C) 5 (D) 6

8.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。

(A) fp=fopen("file","r"); (B) fp=fopen("file","w");

(C) fp=fopen("file","r+"); (D) fp=fopen("file","w+");

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

main()

{ char s1[20]=“abc”,s2[20]=“123”;

if(strcmp(s1,s2)>0) printf(“%s\n”,s1));

else printf(“%s\n”,s2);

}

(A) abc (B) 123 (C) abc123 (D) 123abc

10.已知职工记录描述如下,设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是()。

struct worker

{ int no; char name[20]; char sex;

struct { int day; int month; int year;}birth;

};

struct worker w;

(A) day=25;month=10;year=1993;

(B) w.birth.day=25; w.birth.month=10; w.birth.year=1993;

(C) w.day=25; w.month=10; w.year=1993;

(D) birth.day=25; birth.month=10; birth.year=1993;

四写出下列程序的运行结果(25分,每题5分)

1.main()

{ int i,j;

i=16; j=(i++)+i; printf("%d\n",j);

i=15; printf("%d\t%d\n",++i,i);

}

2.#include "stdio.h"

main()

{ int i;

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

{ if(i>4)

{ printf("%d\n",i++);

break;

}

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

}

}

3.#include "stdio.h"

main()

{ int i,j,a[]={0,2,8,4,5};

printf("\n");

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

{ j=5-i;

printf("%2d",a[j]);

}

}

4.#include "stdio.h"

main()

{ char string1[]={"ABCDEFGHIJ"},string2[10];

s(string1,string2,5);

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

}

s(p,q,m)

char *p.*q;

int m;

{ int n=0;

while(n

{ n++;

p++;

}

while(*p!='\0')

{ *q=*p;

p++;

q++;

}

*q='\0';

}

5.main()

{ int y;

fac(5,&y);

printf(“y=%d\n”,y);

}

fac(int n,int *t)

{ int s;

if((n==1)||(n==0)) *t=2;

else { fac(n-1,&s); t=n*s; }

}

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

1.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。)main()

{

int i,a,m;

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

{

for(m=0,a=l;a<=i/2;a++)

if(!(i%a)) (1) ;

if( (2) ) printf("%4d",i);

}

}

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

#define N 10

char str[N];

main()

{

int i,flag;

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

scanf("%c",&str[i]);

sort(_(1)__);

for(i=0;i

printf("%c",str[i]);

printf("\n");

}

sort(str)

char str[N];

{ int i,j;

char t;

for(j=1;j

for(i=0;i

if(str[i]> (2) )

{ t=str[i];

______(3)______;

______(4)______;

}

3.将一个磁盘文件中的信息复制到另一个磁盘文件中。

#include "stdio.h"

main()

{ (1) *in,*out;

char ch,infile[10],outfile[10];

printf("Enter the infile name:\n");

scanf("%s",infile);

printf("Enter the outfile name:\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{ printf("Cannot open input file.\n");

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{ printf("Cannot open output file.\n");

exit(0);

while(!feof(in))

fputc( (2) ,out);

(3) ;

(4) ; }

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

{

if(arr[i]>*pt1) (1) ;

if(arr[i]<*pt2) (2) ;

}

}

2003C语言试题1

一选择题(7分,每小题0.5分)

1.设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。

A 552

B 144

C 264

D -264

2.下列标识符中,不能作为合法的C用户定义标识符的是()。

A a3_b3

B void

C _123

D IF

3.下列整数值中,不正确的八进制或十六进制数值常量是()。

A 0xcd

B -017

C -ox123

D 0xfdc

4.若给定条件表达式(M)?(a++):(a--),则其中表达式M和()等价。

A M==0

B M=1

C M!=1

D M!=0

5.在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式为()。A只能是逻辑表达式B只能是关系表达式

C 只能是逻辑表达式或关系表达式D可以是任意表达式

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

main( )

{ char c;

int i;

for(i=65;i<68;i++)

{ c=i+32;

{ case …a?:printf("%c,",c);break;

case …b?:case …e?:printf("ok,");

default: printf("end");

}

}

}

A a,ok,end

B a,ok,endend

C a,ok,end,end

D a,ok,ok

7.数组名作为实参数传递给函数时,数组名被处理为()。

A该数组的长度 B 该数组的元素个数

C 该数组的首地址

D 该数组中各元素的值

8.关于return语句,下列正确的说法是()。

A可以在同一函数中出现多次 B 在主函数中不能出现

C 必须在每个函数中出现

D 只能在除主函数之外的函数中出现一次

9.以下程序的输出结果为()。

#define A 3

#define B(a) (A+1)*a

main()

{ int x;

x=3*A+B(7);

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

}

A x=93

B x=37

C x=60

D x=90

10.设有以下定义,则以下对变量w的赋值()是错误的。

enum week{sun,mon=4,tue,wed,thu,fri,sat}w;

A w=sun;

B w=(enum week)4;

C w=san;

D w=(enum week)9;

11.以下定义结构体类型st1,其中正确的是()。

A typedef struct student

{ int num; int age; }STD;

STD st1;

B struct st1{int num,age;}s;

C struct { int num; float age;}st1;

D struct st1 {int num; int age; }

12.若有下面的变量定义,以下语句中合法的是()。

int i,a[10],*p;

A p=a+2;

B p=a[5];

C p=a[2]+2;

D p=&(i+2);

13.若有以下定义和语句,则值为12的表达式是()。

struct wc{ int a;int *b;}*p;

int x0[]={11,12},x1[]={31,32};

static struct wc x[2]={100,x0,300,x1};

p=x;

A *++p->b

B ++p->a

C p->b

D *(p++)->b

14.要打开一个已存在的非空文件“file”用于修改,选择正确的语句()。

A fp=fopen("file","r");

B fp=fopen("file","w");

C fp=fopen("file","r+");

D fp=fopen("file","w+");

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

1.在Turbo C中,实型数据在内存中占4个字节。()

2.若有形参定义:int a[10];则a++是合法的表达式。()

3.若有宏定义:#define PI 3.14i5926,则系统预编译时会报错。()

4.函数的递归调用不过是一个函数直接地调用它自身。()

5.定义在main函数后的任何函数都需在main中进行函数声明。()

6.若有定义:int a;则scanf(“%d",a);可以给变量a赋值。()

7.任何数组在使用前必须先定义。()

8.在int *p;和语句printf(“%d”, *p);中的*p含义相同。()

9.共用体变量的各个成员所占内存单元的地址相同。()

10.在使用缓冲文件系统时,与文件输入和输出相关的数据都先送到缓冲区中。()三写出下列程序的运行结果(10分,每小题2分)

1.main( )

{ char c1=…A?,c2=…\144?,c3=…\x44?,c=0xf5,x=13,a;

int i=0122,j=0xa4;

printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3);

printf(“%d,%d\n”,i,j);

i=-34;

j=20;

printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j));

printf(“c=%d\n”,c|x);

a=c^x<<2;

printf(“a=%d\n”,a);

}

2.main()

{

int x,y=1,z=10;

if(y!=0) x=5;

printf(“x=%d\t”,x);

x=1;

if(z<0)

if(y>0) x=3;

else x=5;

printf(“x=%d\n”,x);

if(z=y<0) x=3;

else if(y==0) x=5;

else x=7;

printf(“x=%d\t”,x);

printf(“z=%d\n”,z);

}

3.main( )

{ char s[20]=“I like it.”,t[20]=“Are you?”,c[20];

int i=0;

while(s[++i]!=…\0?)

t[i]=s[i];

t[i]=0;

printf(“string s:%s\n”,s);

printf(“string t:%s\n”,t);

}

4.int i=5;

main( )

{ int i=3;

{ int i=10;

i++;

printf(“%d\n”,i);

}

f1( );

i+=1;

printf(“%d\n”,i);

}

int f1( )

{ i=i+1;

return(i);

}

5.main()

{ int i=10,a[]={10,20,30,15},*p1;

char *b=”Learning”,**p2=&b;

p1=&i;

printf(“%4d”,*p1+20);

for(p1=a;p1

printf(“%4d”,*p1);

printf(“\n%c\t%s\n”,*(b+4),*p2);

}

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

1.用冒泡法对任意10个整数排序。

main( )

{ int a[11],i,j,t;

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

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

printf("\n");

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

for(j=1; (2);j++)

if(a[j+1]>a[j])

{ t=a[j]; (3) ; (4) ;}

printf("The sorted numbers:\n");

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

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

printf(“\n”);

}

2.求100~200间的素数。

(5)

main( )

{ int m,flag;

for(m=101;m<=200;m+=2)

{ flag=prime(m);

if( (6) )

printf(“%4d”,m);

}

}

prime( (7) )

{

int i,k,flag;

k=sqrt(a);

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

if(a%i==0)

(8) ;

if(i==k+1) flag=1;

else flag=0;

}

2003C语言试题2

一选择题(7分,每小题0.5分)

1.C语言源程序的基本单位是()。

A过程 B 函数 C 子程序 D 标识符

2.下列程序的输出结果是()。

main( )

{ int a=7,b=5;

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

}

A 5

B 1

C 0 D不确定值

3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。

A 7

B 8

C 9

D 2

4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534; a=(int)125.521%4; a=5<<2;

A 125,31,1

B 125,1,20

C 125,31,20

D 125.534,2,20

5.设有如下程序段,下面描述中正确的是()。

int k=10; while(k=0) k=k-1;

A循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次

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

int i;

void prt( )

{ for(i=5;i<8;i++) printf("%c",'*');

printf("\t");

}

main( )

{ for(i=5;i<=8;i++) prt( );

}

A ***

B *** *** *** ***

C *** ***

D * * *

7.在C语言程序中,以下说法正确的是()。

A函数的定义可以嵌套,但函数的调用不可以嵌套

B函数的定义不可以嵌套,但函数的调用可以嵌套

C函数的定义和函数的调用都不可以嵌套

D函数的定义和函数的调用都可以嵌套

8.以下函数调用语句中含有()个实参。

func((e1,e2),(e3,e4,e5));

A 2

B 3

C 5

D 语法错误

9.以下程序的输出结果为()。

#define ADD(x) x*x

main( )

{ int a=4,b=6,c=7,d=ADD(a+b)*c;

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

}

A d=70

B d=80

C d=140

D d=700

10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。struct worker

{ int no;

char name[20];

char sex;

union

{ int day; int month; int year;}birth;

} w;

A 29

B 20

C 25

D 6

11.设有以下定义,值为5的枚举常量是()。

enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

A tue

B sat

C fri

D thu

12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。

A p="abcd";

B a="abcd";

C *p="abcd";

D *a="abcd";

13.设有以下程序段,则值为6的表达式是()。

struct st { int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;

p=&a[0];

A p++->n

B ++p->n

C p->n++

D (*p).n++

14.C语言中的文件类型只有()。

A索引文件和文本文件两种 B 文本文件一种

C 二进制文件一种

D ASCII码文件和二进制文件两种

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

1.在Turbo C中,整型数据在内存中占2个字节。()

2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。()3.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。()

4.函数的递归调用不过是一个函数直接或间接地调用它自身。()

5.函数strlen("ASDFG\n")的值是7。()

6.通过return语句,函数可以带回一个或一个以上的返回值。()

7.结构体类型只有一种。()

8.char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。()

9.若有定义:char *p(char a[10]);则p是函数名。()

10.用fopen("file","r+");打开的文件"file"可以进行修改。()

三写出下列程序的运行结果(10分,每小题2分)

1.float average (float array[10])

{ int i;

float aver,sum=array[0];

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

sum=sum+array[i];

aver=sum/10;

return(aver);

}

main( )

{ float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;

int i;

aver=average (score);

printf (“average sco re is %5.2f\n”,aver);

}

2.main( )

{ char a[5]={…A?,…B?,…C?,…D?,…E?},*p=a,**pa;

for(p=0;p

printf(“%2c”,*p);

printf(“\n”);

printf(“%2c\n”,**(pa=&p));

3.main( )

{ int a,b,s=0;

for(a=1,b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1)

{b+=3; continue; }

b-=5;

}

printf(“a=%d\tb=%d\n”,a,b);

}

c语言期末复习试题(附答案)

试卷编号:11201 所属语言:C语言 试卷方案:C语言期末考试 试卷总分:100分 共有题型:4种 一、单项选择共30题(共计60分) 第1题(2.0分) 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++ B:k+=1 C:++k D:k+1 第2题(2.0分) 已知int i=5,执行语句i+=++i后, i的值是( C). A:10 B:11 C:12 D:A、B、C都不对 第3题(2.0分) 以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include void main( ) /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r; printf("s=%f\n",s); 出错的原因是(D ). A:注释语句书写位置错误 B:存放圆半径的变量r不应该定义为整型

C:输出语句中格式描述符非法 D:计算圆面积的赋值语句中使用了非法变量 第4题(2.0分) "\\\″ABC\″\\″的长度是( B ). A:11 B:7 C:5 D:3 第5题(2.0分) 已知int j,i=1;,执行语句j=–i++;后,j的值是( C ). A:1 B:2 C:-1 D:-2 第6题(2.0分) 有以下程序: #include void main( ) { int s=0, a=1, n; scanf("%d", &n); do{ s+=1; a=a–2; }while(a!=n); printf("%d\n", s); } 若要使程序的输出值为2,则应该从键盘输入给n的值是( B ). A:-1 B:-3

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

C语言上机考试题

考试时间120分钟题目中所有要求统计或输出的地方都要用printf函数输出相关内容要求:新建一个以自己中文姓名命名的文件夹,将如下题目的答案保存在该文件夹中,各题命名要求Exam1.c,Exam2.c,Exam3.c,Exam4.c,Exam5.c 只需提交每个题目的源文件 1.定义一个字符数组s[50],从键盘输入如下字符串给s数组中,统计其中数字字符的个数和英文字母的个数以及特殊字符的个数。(要求:输入的字符为:“123ABCDhijkop#&%*&!”)(本题5分) 输入功能,3个统计 2.从键盘输入10个元素给数组a,然后将这些元素逆向复制到数组b中(要求:输入的这10个数为:1,2,3,4,5,6,7,8,9,10)。(本题5分) 输入,逆序2个功能,错一个扣2分 3.使用循环嵌套,打印输出如下图形结果(提示使用两次循环嵌套)。 (本题5分) 没有中文后面扣1分 实现一半扣2分 4.从键盘上输入一个字符,如果是’M’,输出Mondey,’T’输出Tuesday,’W’输出Wednesday,’R’输出Tursday,’F’输出Friday,’S’输出Saturday,’U’输出Sunday,否则输出Error(本题5分)输入字符,switch语句,细节有错扣0.5 5.从键盘上输入10个学生的数学成绩,使用冒泡排序实现对成绩的排序功能(排序后的成绩按从低到高排列,效果如下), 输出排序后的学生成绩,输出最高成绩,输出最低成绩,将55-60之间的成绩(含55,不含60)修改为60,并统计被修改的成绩个数,统计及格人数,统计95(含95,优秀)分以上的学生成绩人数,输出及格率和优秀率(>=60,及格,>=95优秀)。(要求:输入的10个

c语言期末复习试题

试卷编号:11201 所属语言:试卷方案:试卷总分:共有题型:C 语言 C 语言期末考试100 分 4种 一、单项选择共30 题(共计60 分)第1 题设有定义分) :int k=0;, 以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++ B:k+=1 C:++k D:k+1 分) 第2题 已知int i=5, 执行语句i+=++i 后, i 的值是( C). A:10 B:11 C:12 D:A、B、C都不对 第3题(分) 以下程序的功能是: 给r 输入数据后, 计算半径为r 的圆面积s. 程序在编译时出错. #include <> void main( ) /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r; printf("s=%f\n",s); 出错的原因是(D ). A: 注释语句书写位置错误 B: 存放圆半径的变量r 不应该定义为整型

B:-3 C :输岀语句中格式描述符非法 D: 计算圆面积的赋值语句中使用了非法变量 A:1 B:2 C:-1 D:-2 第 6题 (分) 有以下程序 : #include <> void main( ) { int s=0, a=1, n; scanf("%d", &n); do{ s+=1; a=a — 2; }while (a!=n ); printf ("%d\n", s ); } 若要使程序的输岀值为 2, 则应该从键盘输入给 n 的值是 ( B ). A:-1 第 4题 (分) "ABC " 〃的长度是(B ). A:11 B:7 C:5 D:3 第 5题 (分) 已知 int j,i=1;, 执行语句j= - i++;后,j 的值是(C ).

C语言期末复习卷习题

C语言期末复习卷习题 Prepared on 24 November 2020

期末总复习(基础知识+程序设计部分) 一.填空 1.已知charch=’A’;则下列表达式的值是:a Ch=(ch>=’A’&&ch<=’Z’)(ch+32):ch; 2.若x=1,y=2,z=3,则表达式z+=++x+y++之值是7 3.若x=2,y=3,则x%=y+3之值为2 4..若有定义inty=3;floatz=,x=;则表达式y+=(int)x+x+z的值为17 5.设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值 1)(x&&y)==(x||z)1 2)!(x>y)+(y!=z)||(x+y)&&(y-z)0 3)x++-y+(++z)13 6.设x,y,z为int型变量,请用C语言表达式描述下列命题 1)x和y中有一个小于z(xz||x>z&&y=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1 3)y是奇数y%2!=0 7.下面for循环语句最多可执行4次 For(x=0,y=0;(y!=99)&&(x<4);x++) 8.设i,j,k均为int型变量,则执行以下for语句后,k的值是10 for(i=0,j=10;i<=j;i++,j--) k=i+j; 9.若已知x,y,z,m,n均为int型变量,则执行下面语句后,x的值为7y的值为9z的值为7 m=10;n=5; x=(--m==n++)--m:++n;

y=m++; z=n; 10.若有说明语句:w=1,x=2,y=3,z=4;则表达式w>xw:z>yz:x值是4 11.若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void 12.凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储 13.在C语言中,一个函数直接或间接地调用自身,编构成函数的递归 14.如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。 15.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第6个元素。N*j+m+1 16.若有定义:char*str=”Iamastudent.”;则字符串在存储单元中占16个字节。 17.在执行inta[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0。 18.调用strlen(“abc\0ef\0g”)的返回值是3。\0为停止符 19.设有定义:chars[12]=“string”;则printf(“%d\n”,strlen(s));的输出值是6 20.执行下列程序段后,*p等于3 inta[5]={1,3,5,7,9};*p=a;p++; 二.判断(trueorfalse) 1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺 序完全一致。T 2.函数可以嵌套定义F 3.函数必须有返回值,否则不能正确作用F 4.C程序中有调用关系的所有函数必须放在同一源程序文件中。F 5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F

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--); } A11,9 B9,10 C8,10 D9,9 3.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=20.0/3; a=(int)125.521%4; a=5<<2; A125,6,31,1 B125,6,1,20 C125,6.666666,31,20 D125.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; )。

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

浙江大学C语言总复习题--综合

综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

C语言期末复习卷习题

期末总复习(基础知识+程序设计部分) 一.填空 1.已知char ch=’A’; 则下列表达式的值是: a Ch=(ch>=’A’ && ch<=’Z’)? (ch+32):ch; 2. 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是7 3.若x=2,y=3,则x%=y+3之值为 2 4.. 若有定义int y=3; float z= 5.2, x=4.8; 则表达式y+=(int)x+x+z的值为17 5. 设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值 1)(x&&y)==(x||z) 1 2)!(x>y)+(y!=z)||(x+y)&&(y-z) 0 3)x++-y+(++z) 13 6. 设x,y,z为int型变量,请用C语言表达式描述下列命题 1)x和y中有一个小于z (xz||x>z&&y=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1 3)y是奇数y%2 !=0 7. 下面for循环语句最多可执行 4 次 For (x=0,y=0 ;(y !=99)&&(x<4) ;x++) 8. 设i,j,k均为int型变量,则执行以下for语句后,k的值是10 for (i=0,j=10 ;i<=j ;i++,j--) k=i+j ; 9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为7 y的值为9z的值为7 m=10 ; n=5; x=(--m==n++)? --m : ++n; y=m++; z=n; 10. 若有说明语句:w=1,x=2,y=3,z=4; 则表达式w>x? w:z>y? z:x值是 4 11. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void 12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储 13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的递归 14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。 15. 对于所定义的二维数组a[2][3],元素a[1][2]是数组的第 6 个元素。N*j+m+1 16.若有定义:char *str=”I am a student.”; 则字符串在存储单元中占16 个字节。 17. 在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0 。 18. 调用strlen(“abc\0ef\0g”)的返回值是 3 。\0为停止符 19. 设有定义:char s[12]=“string”; 则printf(“%d\n”,strlen(s));的输出值是 6 20. 执行下列程序段后,*p等于 3 int a[5]={1,3,5,7,9}; *p=a;p++;

2019年12月计算机二级C语言考试模拟题及答案

2019年12月计算机二级C语言考试模拟题及答案 A.用户自己定义的函数只能调用库函数 B.实用的C语言源程序总是由一个或多个函数组成 C.不同函数的形式参数不能使用相同名称的标识符 D.在C语言的函数内部,能够定义局部嵌套函数 参考答案:B 参考解析:A选项中,”用户自己定义的函数只能调用库函数”描述是不准确的,也能够调用自定义函数;C选项中,对于不同函数的形式参数能够使用相同名称的标识符;D选项中,关于函数的定义不能够嵌套,但函数的调用能够嵌套。所以B选项准确。 2[单选题]以下关于C语言数据类型使用的叙述中错误的是( )。 A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 B.若要保存带有多位小数的数据,可使用双精度类型 C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 D.整数类型表示的自然数是准确无误差的 参考答案:C 参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,能够用单精度类型也能够用双精度类型。处理包含不同类型的相关数据能够定义为结构体类型。整数类型能够无误差的表示自然数。 3[单选题]下面选项中关于编译预处理的叙述准确的是A.预处理命令行必须使用分号结尾 B.凡是以#号开头的行,都被称为编译预处理命令行 C.预处理命令行不能出现在程序的最后一行

D.预处理命令行的作用域是到最近的函数结束处 参考答案:B 参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行能够出现在程序的最后一行,预处理命令行作用域是整个文件。 4[单选题]设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )。 A.71 B.70 C.69 D.不可能有这样的二叉树 参考答案:D 参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。如果有一棵二叉树,结点总数为l50,假设度为0的结点个数为n,则有n+10+n一1=150,n=70.5,因为结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。 5[单选题]以下选项中,能用作用户标识符的是( )。 A.-0- B.8-;8 C.void D.unsigned 参考答案:A 参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。8中以数字8开头,所以错误。c与D中用的是关键字void与unsigned,所以错误。 6[单选题]以下叙述准确的是( )。A.表达式sizeof(FILE*)==sizeof(int*)的值为真 B.文件指针的值是一个整数,它的值一定小于文件字节数 C.文件指针的值是所指文件的当前读取位置 D.使用fscanf函数能够向任意类型的文件中写入任意数量的字符

C语言期末复习题

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是: A 。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从 B 开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是: C 。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是 D 。 A. ABC B. abc C. a_bc D. ab.c 6.下列字符串是标识符的是: A 。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是: C 。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是: D 。 A. ...\2? B. "" C. ...3? D. (483) 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: A 。 int k,a,b; unsigned long w=5; double x=1.422; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以 D 形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=2.5; y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是: A 。 A. 2.500000 B. 2.750000 C. 3.500000 D. 0.000000 12.设有说明:char w; int x; float y; double z;

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

c语言期末复习试卷

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━试卷编号:12626 所属语言:Turbo C 所属方案:c语言模拟 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━〖第1题〗『判断』(1分)(题号:6) 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。 答案:Y 〖第2题〗『判断』(1分)(题号:22) 关系运算符<= 与 == 的优先级相同。 答案:N 〖第3题〗『判断』(1分)(题号:15) 整数 -32100可以赋值给int型和long int型变量。 答案:Y 〖第4题〗『判断』(1分)(题号:8) 在C语言中,整型数据在内存中占2个字节。 答案:N 〖第5题〗『判断』(1分)(题号:19) C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。 答案:Y 〖第6题〗『判断』(1分)(题号:27) char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。 答案:Y 〖第7题〗『判断』(1分)(题号:13) char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。 答案:N 〖第8题〗『判断』(1分)(题号:12) 结构体类型只有一种。 答案:N

〖第9题〗『判断』(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. 答案:Y 〖第10题〗『判断』(1分)(题号:34) 7&3+12的值是15。 答案:N 〖第1题〗『单项选择』(2分)(题号:201) 当定义一个结构体变量时,系统分配给它的内存是()。 A:各成员所需内存量的总和 B:结构中第一个成员所需内存量 C:结构中最后一个成员所需内存量 D:成员中占内存量最大者所需的容量 答案:A 〖第2题〗『单项选择』(2分)(题号:638) 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为()。 A:4个字节 B:5个字节 C:6个字节 D:7个字节 答案:C 〖第3题〗『单项选择』(2分)(题号:735) fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()。 A:只写 B:追加 C:读或读写 D:答案B和C都正确 答案:C

C语言期末复习题

作业-1 1.单选题:下列字符串属于标识符的是。 A. INT B. 5_student C. !DF D. 2ong 2.单选题:C语言中能用来表示整常数的进制是。 A. 十进制、八进制、十六进制 B. 二进制、十进制 C. 六进制、八进制 D. 十二进制、十进制 3.单选题:在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的 ASCII码。 A. 小32 B. 大32 C. 大64 D. 小64 4.单选题:设d为字符变量,下列表达式不正确的是。 A. d="a" B. d=97 C. d='a' D. d='g' 5.单选题:10+?a?+1.5-567.345/?b?的结果是型数据。 A. int

B. long C. double D. unsigned 6.单选题:已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为。 main() {char x,y; x=?0?;y=?9?; printf(“%d,%d\n”,x,y); } A. 48,58 B. 48,57 C. 0,9 D. 因输出格式不合法,输出错误信息 7.单选题:已知在ASCII字符集中,字母A的序号为65,下面程序的输出结果为。 main() {char c=?A?;int i=10; c=c+10; i=c%i; printf(“%c,%d\n”,c,i); } A. 75,7 B. K,5 C. 因存在非图形字符,无法直接显示出来 D. 75,5 8.单选题:C语言中,运算对象必须是整型数的运算符是。 A. * B. / C. % D. % 和/ : 9.单选题:下列常数中,合法的C 常量是。 A. 7ff

C语言上机考试题目

1、编写一个C 程序,比较任意三个整数的大小,然后输出其中的最大值。方法不限。 2、计算圆的面积和周长。要求:使用符号常量定义圆周率为3.14。 3、输入某学生三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。要求:有输入数据和输出结果的提示。 4、输入三角形的三边长,求三角形的面积。三角形的三边长用变量a,b,c , 其中s=(a+b+c)/2。提示:求某个数x 的平方根函数为sqrt(x),当直接用此函数时,需要在main 函数上面加入头文件:math.h 。 5、输入一个四位的正整数(如果不是,提示“输入错误”),对其个、十、百、千位四位数字求和并实现个位数与百位数、十位数与千位数的互换然后将这个数输出。例如,输入一个四位正整数1234,通过你的程序,如何输出和10以及新的数3412。 6、求ax 2+b x+c=0方程的根。a ,b ,c 由键盘输入。 提示:众所周知,一元二次方程式的根为:x1= x2= 可以将上面的分式分为两项:p= ,q= x1=p+q, x2=p-q 。注意:在b 2-4ac>0的条件下,才可以求方程的根,否则提示a,b,c 的值输入错误。 7、输入三角形的三条边长,判断能否构成三角形,若能输出YES 并且输出三角形的面积,若不能则输出NO 。 8、任意输入三个整型数,要求按照从大到小的顺序输出。 9、从键盘输入一个四位数的年份,判断其是否为闰年。 a ac b b 242-+-a ac b b 242---a b 2-a ac b 242-

10、有一个函数: 写出程序,输入x的值,输出对应的y的值。要求加上相应的文字说明。 11、编程实现大小字母的转换。从键盘输入一个字符,要求使用getchar()函数读入字符。如果输入的是一个小写字母,转换为大写字母;如果输入的是一个大写字吗,转换为小写字母;如果输入的是一个非字母符号,照原样输出。要求有文字说明。 12、判断从键盘输入的是数字字符、大写字母、小写字母、空格还是其他字符。 13、指定一个年龄,要求按照年龄阶段输出相应的时期:1到7是幼年,8到14是童年,15到21是少年,22到28是青年,29到49是中年,50到70是老年。 14、编写程序,将1至7中的任意一个数字转化成对应的英文星期几的前三个字母,如1转化为Mon,7转化为Sun等。 15、在屏幕上显示一张如下所示的时间表: *****Time***** 1 morning 2 afternoon 3 night

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

大学C语言期末考试练习题(带详解答案)

一、单项选择题 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语言模拟考试题

1. 一个C程序的组成部分可以是()。 A)一个主函数和一至若干个其他函数B)一至若干个主函数 C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序 2. 一个C程序的执行是从()。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C)本程序的main函数开始,到本程序文件的最后一个函数结束 (D)本程序文件的第一个函数开始,到本程序main函数结束 3. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。 A)必须为字母B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 4. 设有定义:int m=1,n=-1;则执行语句printf("%d\n",(m--&++n);后的输出结果是()。 A)–1 B)0 C) 1 D) 2 5. 表达式11&10的结果用二进制表示为()。 A)11B)3C)1D)10 6. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是()。 (A)3(B)0(C)9(D)-12 7. 在下列选项中,不的赋值语句是()。 A)t/=5;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1; 8. 下列( )表达式不满足:当x的值为偶数时值为"真",为奇数时值"假"。 A)X%2==0B)!x%2!=0 C)(x/2*2-x)==0D)!(x%2) 9. 若有定义:int a=8,b= 5,c;执行语句c=a/b+0.4 后c的值为() A)1.4 B)1 C)2.0 D)2 10. 假设a=3,b=4,c=5,则逻辑表达式: !(a+b)+c-1&&b+c/2的值是()。 A)true B)false C)0D) 1 11. 若int a=3,b=4;则执行c=a++>2||b-->=4之后,b变量的值为()。 A)3B)0C)4D)2 12. 以下哪个表达式的值为4() A)11/3B)11.0/3C)(flaot)11/3D)(int)(11.0/3+0.5) 13. 若变量a,i已经正确定义,且i已经正确赋值,合法的语句是() A) a==1 B) ++i C) a=a++=5 D)a=int(i) 14. 以下程序的输出结果是() int a=1234; printf("%2d",a); A) 12 B) 34 C)1234 D) 提示错误,无结果 15. 设x,y分别为单精度和双精度类型变量,则下列选项()可将表达式x+y的运算结果强制转换为整型数据。 A)(int)x+y B)int(x)+y C)int(x+y)D)(int)(x+y) 16. 当a=3,b=2,c=1时,表达式f=a>b>c执行完后f的值是() A)1B)0C)3D)2 17. 若x=2,y=1,则表达式x>y?1:1.5的值为() A)1B)1.5C)1.0D)2 18. 在位运算中,操作数每左移一位,其结果相当于() A)操作数乘以2B)操作数除以2C)操作数乘以4D)操作数除以4 19. 在位运算中,某操作数右移3位,其结果相当于() A)操作数乘以6B)操作数除以6C)操作数乘以8D)操作数除以8 20. 在C语言中,若以下变量均为int型,则下面程序段的输出结果是()。 s=6,u=6;u=s++;u++; printf("%d",u); A)7B)6C)5D)4 21. 若有定义:int x,y;char a,b,c;并有以下输入数据:x=12A B C, 则能给x赋整数1,给赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的程序段是() A)scanf("x%d y=%d",&x,&y); a=getch();b=getch();c=getch(); B)scanf("x=%d%d",&x,&y); a=getch();b=getch();c=getch(); C)scanf("x=%d%d%c%c%c",7x,&y,&a,&b,&c); D)scanf("x=%d%d%c%c%c%c%c",&x,&y,&a,&b,&b,&c,&c); 22. 如下程序:#include void main() {int m,n,k; m=(n=4)+(k=10-7); printf(“m=%d\n”,m); } 运行后m的值为()。 (A)4(B)3(C)7(D)14

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