文档库 最新最全的文档下载
当前位置:文档库 › 大学计算机 C语言期末复习题(一) (附带答案)

大学计算机 C语言期末复习题(一) (附带答案)

大学计算机 C语言期末复习题(一) (附带答案)
大学计算机 C语言期末复习题(一) (附带答案)

大学计算机C语言期末复习题(一)《附带答案》

一、单项选择题

1. 以下不正确的C语言标识符是()。A. ABC B. abc C. a_bc D. ab.c 2.以下正确的C语言标识符是()。A. %k B. a+b C. a123 D. test!

3. 一个C程序的执行是从()。

A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束

4. 在C程序中,main( )的位置()。

A.必须作为第一个函数B.必须作为最后一个函数C.可以任意D.必须放在它所调用的函数之后

5.C语言源程序的基本单位是()。A.过程 B.函数 C.子程序 D.标识符

6.以下结果为整数的表达式(设有int i;char c;float f;)( ).

A.i+f

B.i*c

C.c+f

D.i+c+f

7.以下不正确的语句(设有int p,q)是()。A.p*=3; B.p/=q; C.p+=3; D.p&&=q;

8.以下使i的运算结果为4的表达式是()。A.int i=0,j=0; (i=3,(j++)+i);

B. int i=1,j=0; j=i=((i=3)*2);

C. int i=0,j=1; (j==1)? (i=1): (i=3);

D. int i=1,j=1; i+=j+=2;

9.设char ch;以下正确的赋值语句是()。A.ch='123'; B.ch='\xff'; C.ch='\08'; D.ch="\";

10.设n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。A.0 B.3 C.2 D.1 11.逗号表达式(a=3*5,a*4),a+15的值为(),a的值是()。①A.15 B.60 C.30 D.不确定②A.60 B.30 C.15 D.90

12.如果a=1,b=2,c=3,d=4,则条件表达式a

13.设int n=3;则++n的结果是(),n的结果是()。A.2 B.3 C.4 D.5

14.设int n=2;则++n+1==4的结果是(),n的结果是()。①A.true B.false C.1 D.0

②A.1 B.2 C.3 D.4

15.设int a=2,b=2;则a+++b的结果是(),a的结果是(),b的结果是()

A.2

B.3

C.4

D.5

16.语句(1,2,3,4)的结果是()。A.1 B.2 C.3 D.4

17.设int a=04,b;则执行b=a<<1;语句后,b的结果是()。A.4 B.04 C.8 D.10

18.sizeof(double)是一个()表达式。A.整型 B.双精度 C.不合法 D.函数调用

19.在C语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。设一表达式中包含有int,long,unsigned和char类型的变量和数据,则表达式最后的运算结果是()类型的数据。这四种类型数据的转换规律是()。①A.int B.char C.unsigned D.long ②

A.int->unsigned->long->char

B.char->int->long->unsigned

C.char->int->unsigned->long

D.char ->unsigned->long->int

20. 有如下程序段:int a1,a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); 若要求a1,a2,c1,c2的值分别为10,20,A,B正确的数据输入是()。

A.10A 20B

B.10 A 20 B

C.10 A20B

D.10A20 B

21. 有如下程序,若要求a1,a2,c1,c2的值分别为10、20、A、B,正确的数据输入是()。main()

{

int a1,a2;

char c1,c2;

scanf("%d%d",&a1,&a2);

scanf("%c%c",&c1,&c2);

}

A.1020AB

B.10 20 AB

C.10 20 ABC

D.10 20AB

22. 有如下程序,输入数据:12345 678后,x的值是(),y的值是()。

#include

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

(1) A.12345 B.123 C.45 D.345 (2)

A.45.000000

B.45678.000000 c.678.000000 D.123.000

23. 有如下程序,输入数据:12 345后,x的值是(),y的值是()。

#include

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

(1) A.12 B.123 C.12345 D.0 (2)

A.12.000000

B.345.000000

C.12345.000000

D.0.0000000

24. 有如下程序,对应正确的数据输入是()。

#include

main()

{

float a,b;

scanf("%f%f",&a,&b);

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

}

A. 2.04 5.67

B. 2.04,5.67

C. A=2.04,b=5.67

D. 2.045.67

25. 有如下输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3?

琧的值为2,从键盘输入数据的正确形式应是()。

A.132

B.1,3,2

C.a=1,b=2,c=3

D.a=1 b=2 c=3

26. 以下程序的执行结果是()。

#include

main()

{

int sum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

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

} A.7 B.6 C.5 D.4

27. 以下程序的执行结果是()。

#include

main()

{

int i=010,j=10;

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

} A.11,9,10 B.9,9,10 C.010,9 ,9 D.10,9,9 28. 已知字母A的ASCII码是65,以下程序的执行结果是()。

#include

main()

{

char c1='A',c2='Y';

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

} A.A,Y B.65,65 C.65,90 D.65,89

29. 以下程序的执行结果是()。

#include

#include

main()

{

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

float x=10.5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

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

} A.14.000000 B.15.000000 C.13.700000 D.14.900000

30.为了避免嵌套的if-else语义的二义性,C语言规定else总是与()

A. 缩排位置相同的if

B. 在其之前未配对的的if

C. 在其之前未配对的最近的if

D. 同一行上的if

31.选择出合法的if语句(设int x,y;)( ) A. if(a==b) x++ ;B. if(a=b) x++; D. if(a=>b) x++;

32.选择出合法的if语句(设int x,a,b,c;)( )

A. if(x!=y) if(x>y) printf("x>y\n"); else printf("x

B. if(x!=y) if(x>y) printf("x>y\n") else printf("x

C. if (x!=y) if(x>y) printf("x>y\n"); else printf("x

D. if(x!=y) if(x>y) printf("x>y\n"); else printf("x

33.C语言用()表示逻辑"真"值。A.true B. t或y C.非零整数值 D.整数0

34.以下for循环是()。for(x=0,y=0;(y!=123)&&(x<4);x++); A.无限循环 B.循环次数不定 C.执行4次 D.执行3次

35.下面有关for循环的正确描述是()。

A. for 循环只能是用于循环次数已经确定的情况。

B. for 循环是先执行循环语句,后判断表达试。

C. 在for循环中,不能用break语句跳出循环体

D. for循环体语句中,可以包含多条语句,但要用花括号括起来

36.对于for(表达式1; ; 表达式3)可理解为()。

A. for(表达式1; 0; 表达式3)

B. for(表达式1; 1; 表达式3)

C. for(表达式1; 表达式1; 表达式3)

D. for(表达式1; 表达式3; 表达式3)

37.C语言中()。

A. 不能使用do-while语句构成的循环

B. do-while语句构成的循环必须用break语句才能退

C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D. do-while 语句构成的循环,当while语句中的表达式值为零时结束循环

38.C语言中while和do-while循环的主要区别是()

A. do-while的循环体至少无条件执行一次

B. while的循环控制条件比do-while的循环控制条件严格

C. do-while允许从外部转到循环体内

D. do-while的循环体不能是复合语句

39.有以下程序:

# include

# define N 6

main()

{char c[N];

int i=0;

for (;i

for(i=0;i

}

输入以下三行,每行输入都是在第一列上开始:

a

b

cdef

程序的输出结果是()。

A. abcdef

B.a

C.a

D.a

b b b

c c

d cdef

d

e

f

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

#include

main()

{int i;

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

{if(i%2)

printf("*");

else

continue;

printf("#");

}

printf("$\n");

}

A.* # * # * # $

B.# * # * # * $

C.* # * # $

D.# * # * $

41.以下for语句构成的循环执行了()次。#include #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() { int i,n=0; for (i=1;i<=NUM;i++) { n++; printf("%d",n); } printf("\n"); } A.5 B.6 C.8 D.9 42.以下程序的输出结果是(). #include main() { int num=0; while (num<=2) {num++; printf("%d\n",num); } } A.1 B.1 C.1 D.1 2 2 2 3 3 4 43.以下程序段()。x=-1; do {x=x*x;} while(!x); A.是死循环 B.循环执行二次C.循环执行一次 D.有语法错误44. 以下关于数组的描述正确的是()A. 数组的大小是固定的,但可以有不同的类型的数组元素。B. 数组的大小是可变的,但所有数组元素的类型必须相同。C. 数组的大小是固定的,所有数组元素的类型必须相同。D. 数组的大小是可变的,可以有不同的类型的数组元素。45.以下一维数组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]; 46.在定义int a[10];之后,对a的引用正确的是()A.a[10] B.a[6.3] C. a(6) D.a[10-10] 47.以下对二维数组a进行正确初始化的是() A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6}; C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2},{3,4}}; 48.以下对二维数组a 进行不正确初始化的是() A.int a[][3]={3,2,1,1,2,3}; B.int a[][3]={{3,2,1},{1,2,3}};

c.int a[2][3]={{3,2,1},{1,2,3}}; D.int a[][]={{3,2,1},{1,2,3}}; 49.以下对字符数组word进行不正确初始化的是() A.static char word[]='Turbo\0'; B.static char word[]={'T','u','r','b','o','\0'}; C.static char word[]={"Turbo\0"}; D.static char word[]="Turbo\0"; 50.在定义int a[5][4];之后,对a的引用正确的是() A.a[2][4] B.a[5][0] C.a[0][0] D.a[0,0]

51.在定义int a[2][3];之后,对a的引用正确的是() A.a(1,2) B.a{1,3] C.a[1>2][!1]

D.a[2][0]52.以下正确的定义语句是()A.int A['a']; B.int A[3,4]; C.int A[][3]; D.int A[10]; 53.以下给字符数组str定义和赋值正确的是() A.char str[10]; str="China";

B.char str[]={"China"};

C.char str[10]; strcpy(str,"abcdefghijklmn");

D.char str[10]={"abcdefghijklmn"); 54.在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是()

A.4

B.1

C.2

D.5 55.在执行int a[][3]={{1,2},{3,4}};语句后,a[1][3]的值是()A.3 B.4 C.0 D.2

56.在执行char str[10]="China\0";strlen(str)的结果是()A.5 B.6 C.7 D.9 57.设int *p,i;以下正确的语句是()A. *p=10; B. i=p; C. i=*P; D. p=2*p+1; 58.设char s[10];*p=s;以下不正确的表达式是()A. p=s+5; B. s=p+s; C. s[2]=p[4]; D. *p=s[0]; 59.设char **s;以下正确的表达式是()A. s="computer"; B. *s="computer"; C. **s="computer"; D. *s='c'; 60.设有说明int (*ptr)[M];其中ptr是()A. M个指向整型变量的指针B. 指向M个整型变量的函数指针C. 一个指向具有M个整型元素的一维数组的指针D. 具有M个指针元素的一维指针数组,每个元素都只能指向整型量61.选择出i的正确结果()int i; char *s="a\045+045\b"; for (i=0;*s++;i++) A. 5 B. 8 C. 11 D. 12 62.如下程序的执行结果是()#include main() { int i; char *s="a\n35\b"; for (i=0;*s++;i++) printf("i=%d\n",i);} A. i=5 B. i=6 C.i=7 D. i=8 63.如下程序的执行结果是()#include main() {int i; char *s="a\\\\\n"; for(i=0;s[i]!='\0';i++) printf("%c",*(s+i));} A. a B. a\ C. a\\ D. a\\\\ 64.如下程序的执行结果是()#include main() { int i; char *s="\\\""; for (i=0;s[i]!='\0';i++) printf("%c",*(s+i));} A. \" B. a" C."\"" D. 不正确65.如下程序的执行结果()#include main() { static int a[]={1,2,3,4,5,6}; int *p; p=a; *(p+3)+=2; printf("%d,%d\n",*p,*(p+3));} A. 1,3 B. 1,6 C. 3,6 D. 1,4 66.如下程序的执行结果是()#include main() { static int a[][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4],i=1,j=2; p=a; printf("%d\n",*(*(p+i)+j));} A. 9 B. 11 C. 13 D. 17 67.以下delspace函数的功能是删除字符串s中的所有空格(包括Tab,回车符和换行符)。请选择正确的编号填空delspace(char *s) { int i,t ; char c[80]; for(i=0,t=0; (1) ;i++) if (!isspace ( (2) ) ) c[t++]=s[i]; c[t]='\0'; strcpy(s,c); } (1) A. s[i] B. !s[i] C. s[i]='\0' D. s[i]=='\0' (2) A. s+i B. *c[i] C. *(s+i) D. *(c+i) 68.以下delnum函数的功能是删除字符串s中的数字字符。请选择正确的编号填空delnum(char *s) { int i,j; for (i=0,j=0;s[i]!='\0';i++) if( (1) ) {s[j]=s[i]; j++; } (2); } (1) A. s[j]<'0'||s[j]>'9' B. s[i]<'0'||s[i]>'9' C. s[j]<'0'&&s[j]>'9' D. s[i]<'0'&&s[i]>'9' (2) A. s[j]='\0' B. s[i]='\0' C. s[j++]='\0' D. s[i++]='\0' 69.以下comp函数的功能是按词典顺序比较两个字符串s 和t的大小。如果s大于t则返回正值,等于就返回零,小于则返回负值。请选择正确的编

号填空。comp(char *s,char *t) { for(;*s==*t;___________) if (*s=='\0') return(0); return (*s-*t);} A. s++ B. t++ C. s++;t++ D. s++,t++ 70.C语言中规定函数的返回值的类型是由()。A.return 语句中的表达式类型所决定B.调用该函数时的主调用函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指指定的函数类型所决定71.对于C语言的函数,下列叙述中正确的是()。A. 函数的定义不能嵌套,但函数调用可以嵌套B. 函数的定义可以嵌套,但函数调用不能嵌套 C. 函数的定义和调用都不能嵌套D. 函数的定义和调用都可以嵌套72.有一个函数的定义如下:void newprint(double (*f)(),double x) { printf("%f\n",(*f)(x)); } 则调用正确的语句是()。A.newprint(sin,0.5); B.newprint(sin(0.5)); C.newprint(&sin,0.5); D.newprint((&sin)(0.5)); 73.以下函数调用语句中含有()个实参。func((exp1,exn2),(exp3,exp4,exp5)); A.1 B.2 C.4 D.5 74.以下程序的输出结果是()。#include main() { int k=4,m=1,p; p=func(k,m); printf("%d",p); p=func(k,m); printf("%d\n",p); } func(a,b) int a,b; { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } A.8,17 B.8,16 C.8,20 D.8,8 75.以下程序的输出结果是()。#include main() { static char *a[]={"MORNING","AFTERNOON","EVENING"}; char **n; n=a; func(n); } func(char **m) { ++m; printf("%s\n",*m); } A.为空B.MORNING C.AFTERNOON D.EVENING 76.以下程序的输出结果是()。main() { int a=2,i; for (i=0;i<3;i++) printf("%d",func(a)); } func(int a) { int b=0; static c=3; b++;c++; return(a+b+c); } A.777 B.7 7 7 C.789 D.7 8 9 77.以下程序的输出结果是()。int i=10; main() { int j=1; j=func(); printf("%d,",j); j=func(); printf("%d",j); } func() { int k=0; k=k+i; i=i+10; return(k); } A. 0,0 B. 10,20 C. 10,10 D. 20,20 78.以下程序的输出结果是()。main() { int a=3,b=2,c=1; c-=++b; b*=a+c; { int b=5,c=12; c/=b*2; a-=c; printf("%d,%d,%d,",a,b,c); a+=--c; } printf("%d,%d,%d\n",a,b,c); } A. 3,2,1,2,3,-2 B. 2,5,1,3,5,12 C. 2,5,1,2,3,-2 D. 3,2,1,3,5,12 79.以下程序的输出结果是()。func1(int a,int b) { return(a+b); } func2(int a,int b) { return(a-b); } func3(int(*t)(),int x,int y) { return(*t)(x,y); } main() { int x,(*p)(int,int); p=func1; x=func3(p,9,3); x+=func3(func2,8,3); printf("%d\n",x); } A.9 B.17 C.3 D.27 80.在说明一个结构体变量时系统分配给它的存储空间是() A.该结构体中第一个成员所需存储空间 B.该结构体中最后一个成员所需存储空间 C.该结构体中占用最大存储空间的成员所需存储空间D.该结构体中所有成员所需存储空间的总和

81.在说明一个共用体变量时系统分配给它的存储空间是() A.该共用体中第一个成员所需存储空间 B.该共用体中最后一个成员所需存储空间 C.该共用体中占用最大存储空间的成员所需存储空间D.该共用体中所有成员所需存储空间的总和82.使用共用体union的目

的是() A.将一组数据作为一个整体,以便于其中的成员共享同一存储空间B.将一组具有相同数据类型的数据作为一个整体,以便于其中的成员共享同一存储空间 C.将一组相关数据作为一个整体,以便程序中使用 D.将一组具有相同数据类型的数据作为一个整体,以便程序中使用83.以下关于typedef的叙述不正确的是() A.用typedef可以定义各种类型名,但不能用来定义变量B.用typedef可以增加新类型 C.用typedef只是将已存在的类型用一个新的名称来代表D.使用typedef便于程序的通用84.在下列程序段中,枚举变量c1和c2的值分别是( )和( ) main() { 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 85.若有以下说明和语句: struct worker { int no; char *name; }work,*p=&work; 则以下引用方式不正确的是() A.work.no B.(*p).no C.p->no D.work->no 86.以下程序执行后的正确结果是() struct tree { int x; char *s; }t; func(struct tree t) { t.x=10; t.s="computer"; return(0); } main() { t.x=1; t.s="minicomputer"; func(t); printf("%d,%s\n",t.x,t.s); } A.10,computer B.1,minicomputer C.1,computer D.10,minicomputer 87.有如下定义:struct date { int year,month,day; }; struct worklist { char name[20]; char sex; struct date birthday; }person; 对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是()A.year=1958 B.birthday.year=1958 c.person.birthday.year=1958 D.person.year=1958 88.在如下结构体定义中,不正确的是()A.struct student { int no; char name[10]; float score; } B.struct stud[20] { int no; char name[10]; float score; } C.struct student { int no; char name[10]; float score; }stud[20]; D.struct { int no; char name[10]; float score; } stud[100]; 89.以下程序的功能是读入一行字符,且每个字符存入一个结点,按输入顺序建立一个链表的结点序列,然后再按相反顺序输出并释放全部结点。请选择正确的编号填空。#include #include #define getnode(type) ((type *)malloc(sizeof(type))) #define NULL 0 main() {struct node {char info; struct node <1>; }*top,*p; char c; top=NULL; while((c=getchar())!='\n') {p=getnode(<2>); p->info=c; p->link=<3>; top=<4>; } while(top!=NULL) {p=<5>; top=p->link; printf("%c",p->info); free(p); } } <1>A.*p B.*link C.*top D.link <2>A.top B.p C.node D.struct node <3>A.top B.top->link C.p D.p->link <4>A.link B.p C.p->link D.top->link <5>A.p->link B.top->link C.top D.link 90.阅读以下程序,请选择正确的编号填空。#include typedef struct str1 {char c[5]; char *s; }st; main() {static st s1[2]={{"ABCD","EFGH"},{"IJK","LMN"}}; static struct str2 {st sr; int d; }s2={"OPQ","RST",32767}; st *p[]={&s1[0],&s1[1]}; printf("%c\n",p[0]->c[1]); 输出为(<1>)printf("%s\n",(++p[0])->s); 输出为(<2>)printf("%c\n",s2.sr.c[2]); 输出为(<3>)printf("%d\n",s2.d+1); 输出为(<4>)} <1>A.M B.J

C.D

D.B <2>A.ABCD B.EFGH C.LMN D.IJK <3>A.Q B.V C.Y D.Y <4>A.-32768 B.32768 C.65535 D.0 91.当已存在一个abc.txt文件时,执行函数fopen("abc.txt","r+")的功能是()。A. 打开abc.txt文件,清除原有的内容。C. 打开abc.txt文件,只能读取原有内容。 B. 打开abc.txt文件,只能写入新的内容。D. 可以读取和写入新的内容。92.fopen( )函数的mode 取值"r"和"w"时,它们之间的差别是()。A."r"可向文件读入,"w"不可向文件读入。B."r" 不可向文件写入,"w"可向文件写入。C."r" 不可由文件读出, "w"可由文件读出。D.文件不存在时,"r"建立文件,"w"出错。93.fopen( )函数的mode取值"w+"和"a+"时都可以写入数据,它们之间的差别是()。A."w+"时可在中间插入数据,而"a+"时只能在末尾追加数据。

B."w+"时和"a+"时只能在末尾追加数据。

C.在文件存在时,"w+"时清除原文件数据,而"a+"时保留原文件数据。

D."w+" 时不能在中间插入数据,而"a+"时只能在末尾追加数据。

94.若用fopen( )函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是()。A. "r+" B. "wb+" C. "a+" D. "ab" 95.若用fopen( )函数打开一个已存在的文本文件,保存该文件原有数据且可以读也可以写,则文件打开模式是()。A. "r+" B. "w+" C. "a+" D. "a"

96.使用fseek函数可以实现的操作是()。A.改变文件的位置指针的当前位置B.文件的顺序读写C.文件的随机读写 D.以上都不对97.以下不能将文件位置指针重新移动到文件开头位置的函数是()。A.rewind(fp); B.fseek(fp,0,0); C.fseek(fp,-(long)ftell(fp),1); D.fseek(fp,0,2); 98.fread(buf,64,2,fp)的功能是()。A.从fp文件流中读出整数64,并存放在buf中; B.从fp文件流中读出整数64和2,并存放在buf中; C.从fp文件流中读出64个字节的字符,并存放在buf中; D.从fp文件流中读出2个64个字节的字符,并存放在buf 中; 99.检测文件流的文件位置指针在文件头的条件是()。 A. fp==0 B. ftell(fp)==0 C. fseek(fp,0,SEEK_SET) D. feof(fp) 100.C语言中,宏定义有效范围从定义处开始,到源文件结束处结束,但可以用()来提前解除宏定义的作用。A.#ifdef B.#endif C.#undefine D.#undef 101.以下不正确的叙述是()A.预处理命令行都必须以"#"开始B.在程序中凡是以"#"开始的语句行都是预处理命令行C.C程序在执行过程中对预处理命令进行处理D.#define ABCD是正确的宏定义102.以下正确的叙述是()A.在程序的一行中可以出现多个有效的预处理命令行B.使用带参宏时,参数的类型应与宏定义时的一致C.宏替换不占用运行时间,只占编译时间D.宏定义不能出现在函数内部103.以下不正确的叙述是()A.宏替换不占用运行时间B.宏名无类型C.宏替换只是字符替换D.宏名必须用大写字母表示104.以下正确的叙述是( ) A.C语言的预处理功能是指完成宏替换和包含文件的调用B.预处理命令只能位于C源程序文件的首部C.凡是C源程序中

行首以"#"标识的控制行都是预处理命令D.C语言的编译预处理就是对源程序进行初步的语法检查105.在文件包含预处理语句(#include)的使用形式中,当之后的文件名用""(双括号)括起时,寻找被包含文件的方式是()A.直接按系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录106.在文件包含预处理语句(#include)的使用形式中,当之后的文件名用< >(尖括号)括起时,寻找被包含文件的方式是()A.直接按系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录107.C语言的编译系统对宏命令的处理()A.在程序运行时进行的B.在程序连接时进行的C.和C程序中的其他语句同时进行编译的D.在对源程序中其他语句正式编译之前进行的108.以下程序的输出结果是()#define MIN(x,y) (x)<(y)?(x):(y) main( ) { int i ,j ,k; i=10; j=15; k=10*MIN(i,j) printf("%d",k); }

A.15

B.100

C.10

D.150 109.以下程序的输出结果是()#include #define ADD(y)

3.54+y #define PR(a) printf("%d",(int)(a)) #define PR1(a) PR(a);putchar('\n') main( ) { int i=4; PR1(ADD(5)*i ); } A.20 B.23 C.10 D.0

二、填空题(将正确的答案填在相应的空中)1.一个C程序有且仅有一个________ 函数。

2.一个C源程序有________个main()函数和________个其他函数。3.结构化设计中的三种基本结构是________ 。4.C程序的执行是从________开始执行的。5.C语言源程序的语句分隔符是________ 。6.C语言开发的四个步骤是________ 。7.表达式10/3的结果是________ 。8.表达式10%3的结果是________ 。9. 定义int x,y;执行y=(x=1,++x,x+2);语句后,Y的值是------。10.设int x=9,y=8;表达式x==y+1的结果是_________。11. 设int x=10,y,z;执行y=z=x; x=y==z后,变量x的结果是__________。12. 设int a=1,b=2,c=3,d;执行d=!(a+b+c)后,d的结果是________。13.设int x;当x的值分别为1,2,3,4时,表达式(x&1==1)?1:0的值分别是________,______ __,________,________。14. 以下程序的执行结果是__________。#include main() { float f=

3.1415927; printf("%f,%5.4f,%3.3f",f,f,f); } 15. 以下程序的执行结果是__________。#include main() { float f=3.5; printf("%f,%g",f,f); } 16. 以下程序的执行结果是___________。#include main() { float f=31.41592; printf("%f,%e",f,f); } 17. 以下程序的执行结果是___________。#include main() { char c='A'+10; printf("c=%c\n",c); } 18.以下程序的执行结果是__________ #include main() {int a,b,c; a=2;b=3;c=1; if(a>b) if(a>c) printf("%d\n",a); else printf("%d\n",b); printf("end\n"); } 19.以下程序的执行结果是

___________ #include main() {int a,b,c,d,x; a=c=0; b=1; d=20; if(a) d=d-10; else if(!b) if(!c) x=15; else x=25; printf("d=%d\n",d); } 20.以下程序在输入5,2之后的执行结果是#include main() {int s,t,a,b; scanf("%d,%d",&a,&b); s=1; t=1; if(a>0) s=s+1; if(a>b) t=s+t; else if(a==b) t=5; else t=2*s; printf("s=%d,t=%d\n",s,t); } 21.以下程序的执行结果是_________ #include main() {int x=1,y=0; switch (x) {case 1: switch (y) {case 0:printf("first\n");break; case 1:printf("second\n");break; } case 2:printf("third\n"); } } 22.执行以下程序,输入-10的结果是________,输入5的结果是__________,输入10的结果是__________,输入30的结果是________ #include main() {int x,c,m; float y; scanf("%d",&x); if(x<0) c=-1; else c=x/10; switch ( c ) {case -1:y=0;break; case 0:y=x;break; case 1:y=10;break; case 2: case 3:y=-0.5*x+20;break; default:y=-2; } if(y!=-2) printf("y=%g\n",y); else printf("error\n"); } 23.以下程序的执行结果是_________ #include main() {int a=2,b=7,c=5; switch(a>0) {case 1:switch(b<0) { case 1:printf("@");break; case 2:printf("!");break; } case 0:switch(c==5) {case 0:printf("*");break; case 1:printf("#");break; default:printf("$");break; } default:printf("&"); } printf("\n"); } 24.下列程序运行后的输出结果是___#include main() {int s=0,k; for (k=7;k>=0;k--) {switch(k) {case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; } } printf("s=%d\n",s); } 25.下列程序运行后的输出结果是__#include main() { int i,j; for (i=4;i>=1;i--) { printf("*"); for(j=1;j<=4-i ;j++) printf("*"); printf("\n"); } } 26.下列程序运行后的输出结果是________。# include main() {int i,j,k; for (i=1;i<=6;i++) {for(j=1;j<=20-2*i;j++) printf(" "); for(k=1;k<=i;k++) printf("%4d",i); printf("\n"); } } 27. 下列程序运行后的输出结果是______。#include main() {int i,j,k; for(i=1;i<=6;i++) {for (j=1;j<=20-3*i;j++) printf(" "); for (k=1;k<=i;k++) printf("%3d",k); for(k=i-1;k>0;k--) printf("%3d",k); printf("\n"); } } 28.下列程序运行后的输出结果是__________。#include main() {int i,j,k; for (i=1;i<=4;i++) {for (j=1;j<=20-3*i;j++) printf(" "); for(k=1;k<=2*i-1;k++) printf("%3s","*"); printf("\n"); } for(i=3;i>0;i--) {for(j=1;j<=20-3*i;j++) printf(" "); for(k=1;k<=2*i-1;k++) printf("%3s","*"); printf("\n"); } } 29.下列程序运行后的输出结果是________。#include main() {int i,j,sum,m,n=4; sum=0; for(i=1;i<=n;i++) {m=1; for(j=1;j<=i;j++) m=m*j; sum=sum+m; } printf("sum=%d\n",sum); } 30.定义int a[ ]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是_____。31.以下程序的执行结果是__________ typedef struct {long x[2]; int y[4]; char z[8]; }MYTYPE; MYTYPE a; main()

{printf("%d\n",sizeof(a)); } 32.有如下定义:struct {int x; char *y; }tab[2]={{1,"ab"},{2,"cd"}},*p=tab; 则:表达式*p->y的结果是____ 表达式*(++p)->y的结果是____ 33.有如下定义:struct {int x; int y; }s[2]={{1,2},{3,4}},*p=s; 则:表达式++p->x 的结果是____ 表达式(++p)->x的结果是____ 34.以下程序的执行结果是________ struct stru {int x; char c; }; main() {struct stru a={10,'x'}; func(a); printf("%d,%c\n",a.x,a.c); } func(struct stru b) {b.x=20; b.c='y'; } 35.以下程序执行的结果是______ struct stru {int x; char c; }; main() {struct stru a={10,'x'},*p=&a; func(p); printf("%d,%c\n",a.x,a.c); } func(struct stru *b) {b->x=20; b->c='y'; } 36.以下程序的执行结果是______ main() {union {int i[2]; long k; char c[4]; }r,*p=&r; p->i[0]=0x39; p->i[1]=0x38; printf("%x,%x,%x,%x\n",p->c[0],p->c[1],p->c[2],p->c[3]); } 37.以下程序的执行结果是_______ typedef union {long x[2]; int y[4]; char z[8]; }MYTYPE; MYTYPE a; main() {printf("%d\n",sizeof(a)); } 38.以下程序的执行结果是_______ struct st {int x; int *y; }*p; int s[]={10,20,30,40}; struct st a[]={1,&s[0],2,&s[1],3,&s[3],4,&s[3]}; main() {p=a; printf("%d,",p->x); printf("%d,",(++p)->x); printf("%d,",*(++p)->y); printf("%d\n",++(*(++p)->y)); } 39.以下程序的执行结果是_______ #include main() {union EXAMPLE {struct {int x;int y; }in; int a; int b; }e; e.a=1;e.b=2; e.in.x=e.a*e.b;

e.in.y=e.a+e.b; printf("%d,%d\n",e.in.x,e.in.y); } 40.C语言中根据数据的组织形式,把文件分为________和__________两种。41.使用fopen("abc","r+")打开文件时,若abc文件不存在,则_________。42.使用fopen("abc","w+")打开文件时,若abc文件已存在,则________。43.使用fopen("abc","a+")打开文件时,若abc文件不存在,则_________。44.使用fopen("abc","a+")打开文件后,所有的写操作均在文件末尾进行,这句话是______ ___。45.C 语言中文件的格式化输入输出函数对是_________;文件的数据块输入输出函数对是___ _______;文件的字符串输入输出函数对是_______。46.C语言中文件指针设置函数是__________;文件指针位置检测函数是_______。47.将fp的文件位置指针移到离文件开头64个字节处,采用的函数是_________;将文件位置指针移到离当前文件位置前面32个字节处,采用的函数是______。将文件位置指针移到离文件末尾后面16个字节处,采用的函数是______。48.以下程序的执行结果___________ #include main() { int i, n; FILE *fp; if((fp=fopen("temp","w+" ))==NULL) { printf("不能建立temp文件\n"); exit(0); } for(i=1;i<10;i++) fprintf(fp,"%3d",i); for(i=0;i<5;i++) { fseek (fp, i*6L,SEEK_SET); fscanf (fp, "%d",&n); printf("%3d",n); } fclose(fp); } 49.以下程序的执行结果__________

#include main() { int i,n; FILE *fp; If((fp=fopen("temp","w+"))==NULL) { printf("不能建立temp文件\n"); exit(0); } for(i=1;i<=10;i++) fprintf(fp, "%3d",i); for(i=0;i<10;i++) { fseek(fp, i*3L,SEEK_SET); fscanf(fp, "%d",&n); fseek(fp, i*3L,0); fprintf(fp, "%3d",n+10); } for(i=1;i<=5;i++) { fseek(fp, i*6L,0); fscanf(fp, "%d",&n); printf("%3d",n); } fclose(fp); } 50.有一个delcomn程序和包含如下两行内容的abc文件fp=fopen("temp", "r"); /Open temp file for read*/ fscanf(fp, "%c%c", i,j);/*read character i and j*/ 则命令:delcomn abc xyz 执行后xyz 文件的内容是__________。/*filename:delcomn.c*/ #include main(int argc,char *argv[]) { FILE *fp1,*fp2; int c, i=0; if (argc<3) { printf("Usage :delcomn filename1 filename2\n"); exit(0); } fp1=fopen(argv[1],"r"); fp2=fopen(argv[2],"w"); while((c=fgetc(fp1))!=EOF) if(c=='\n') fprintf(fp2, "\n"); else switch(i) { case 0:if (c=='/') i=1; else fprintf(fp2,"%c",c); break; case 1:if (c=='*') i=2; else { fprintf(fp2, "/%c",c); i=0; } break; case 2:if (c=='*') i=3; break; case 3: i=(c=='/')? 0:2; break; } fclose(fp1); fclose(fp2); }

三、读程序1、以下程序的执行结果是什么?为什么?#include main( ) {int a=2; char c='a'; float f=3.0; printf("(1):%f\n",a+a*6/f+c%a); printf("(2):%d\n",(a<=f)+5); printf("(3):%f\n",(a&&1)*f); printf("(4):%d\n",((a>2)?3:2)); printf("(5):%f\n",(a=2)*f); printf("(6):%d\n",(1,2,3)-a);} 2.以下程序的执行结果是什么?为什么?#include main() {int a=1; char c='a'; float f=2.0; printf("(1):%d\n",a+2!=c-100); printf("(2):%d\n",(a>c)>=(f>4)); printf("(3):%d\n",!a==!f); printf("(4):%d\n",(!a&&1)!=(!c||1)); printf("(5):%d\n",(!a>2)?3:0)<((f!=1)?0:1); printf("(6):%d\n",(1,2,3)==(3,3,3));} 3.以下程序的执行结果是什么?为什么#include main() {int a=1; char c='a'; float f=2.0; printf("(1):%d\n",a>0?a:-a); printf("(2):%d\n",f==3.0?a<=c:a>=c); printf("(3):%d\n",!(a==0)?!!a:a); printf("(4):%d\n",(f>0)?((a>0)?2:1):((a>0?1:0))); printf("(5):%d\n",(a>=0)?(a=1):(a=0)); printf("(6):%d\n",(c=='A')?(0,1):(1,0));} 4.以下程序的执行结果是什么?为什么?#include main() {int a=1;char c='a'; float f=2.0; printf("(1):%d\n",(a+2,c+2)); printf("(2):%d\n",(a<=c,f>=c)); printf("(3):%d\n",(!(a==0),f!=0&&c=='A')); printf("(4):%d\n",((a>0?0:1),(a<0?1:2))); printf("(5):%d\n",(f+2.5,a-10)); printf("(6):%d\n",(a,c,f,5));} 5.以下程序的执行结果是什么?为什么?#include main() {int a=0234; char c='A'; printf("(1):%o\n",a<<2); printf("(2):%o\n",a>>2); printf("(3):%o\n",c<<3); printf("(4):%o\n",c>>3); printf("(5):%o\n",(a<<1)+8); printf("(6):%o\n",(a>>1)- 8);} 6.以下程序的执行结果是什么?为

什么?#include main() {int a=0234; char c='A'; printf("(1):%o\n",~a); printf("(2):%o\n",a&c); printf("(3):%o\n",a|c);} 7.以下程序的执行结果是什么?为什么?#include main() {int a=-32768,b; b=a-1; printf("a=%d,b=%d\n",a,b);} 8.以下程序的执行结果是什么?为什么?#include main() {int a=32767,b; b=a+1; printf("a=%d,b=%d\n",a,b);} 9.以下程序的执行结果是什么?为什么?#include main() {long a=32767; long b; b=a+1; printf("a=%ld,b=%ld\n",a,b);} 10. 以下程序的执行结果是什么?为什么?#include main() {int a=-32768; unsigned b; b=a; printf("a=%d,b=%u\n",a,b);} 11.以下程序的执行结果是_______。# include main ( ) { int a[ ]={1,2,3,4,5,6}; int *p; int i; p=a; *(p+3)+=2; printf ("n1=%d,n2=%d\n",*p,*(p+3)); } 12.以下程序的执行结果是______. # include main ( ) {int **p,*q, i=10; q=&i; p=&q; printf ("%d\n",**p); } 13. 以下程序的执行结果是______. # include main() {int i,j; int *p,*q; i=2; j=10; p=&i; q=&j; *p=10; *q=2; printf ("i=%d,j=%d\n",i,j); } 14. 以下程序的执行结果是_______。# include main ( ) {int i; int *p; p=&i *p=2; p++; *p=5; printf ("%d,",*p); p--; printf ("%d\n"); } 15. 以下程序的执行结果是_______。# include main ( ) {int *p,i; i=5; p=&i; i=*p+10; pintf("i=%d\n",i); } 16. 以下程序的执行结果是_______。# include main ( ) {char s[ ]="abcdefg"; char *p; p=s; printf("ch=%c\n",*(p+5)); } 17. 以下程序的执行结果是_______。# include main ( ) {int a[ ]={2,3,4}; int s,i,*p; s=1; p=a; for (i=0;i<3;i++) s*=*(p+i); printf ("s=%d\n",s); } 18. 以下程序的执行结果是_______。# include main ( ) {int a[ ]={1,2,3,4,5,6},*p; for (p=&a[5];p>=a;p--) printf ("%d",*p); printf ("\n"); } 19. 以下程序的执行结果是_______。#include main ( ) {int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for (i=0;i<4;i++) p[i]=&a[i*3]; printf ("%d\n",p[3][2]); } 20. 以下程序的执行结果是_______。#include main ( ) {char ch[2][5]={"6934","8254"},*p[2]; int i,j,s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for (j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf ("%d\n",s); } 21. 以下程序的执行结果是_______。#include main ( ) {char *p1,*p2,str[20]="xyz"; p1="abcd"; p2="ABCD"; strcpy (str+1,strcat (p1+1,p2+1)); printf ("%s",str); } 22.以下程序的执行结果是______. #include int x=1; main() {func(x); printf("x=%d\n",x); } func(int x) {x=3; } 23.以下程序的执行结果是______. #include main() { int x=10; func(x); printf("x=%d\n",x); } func(int x) { x=20; } 24.以下程序的执行结果是______. #include main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); } func(int

a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } 25.以下程序的执行结果是______. #include void finc(int); main() { int k=4; func(k); func(k); } func(int a) {static int m=0; m+=a; printf("%d",m); } 26.以下程序的执行结果是______. #include main() { int swap(); extern int a,b; a=3;b=10; swap(); printf("a=%d,b=%d\n",a,b); } int a,b; swap() { int temp; temp=a; a=b; b=temp; } 27.以下程序的执行结果是______. #include main() { int swap(); int a,b; a=3;b=10; swap(a,b); printf("a=%d,b=%d\n",a,b); } swap(a,b) int a,b; { int temp; temp=a; a=b; b=temp; } 28.以下程序的执行结果是______. #include main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { static int x=0; return(x+=k); } 29.以下程序的执行结果是______. #include main() { int s,i,sum(); for(i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return(x+=k); } 30.以下程序的执行结果是______. #include main() { int a[]={5,6,7,8},i; func(a); for(i=0;i<4;i++) printf("%d",a[i]); } func(int b[]) { int j; for (j=0;j<4;j++) b[j]=2*j; } 31.以下程序的执行结果是_______. #include main( ) { int a,b,c; a=10,b=12; c=mult(a,b); printf("%d*%d=%d\n",a,b,c); } mult(x,y) int x,y; { return(x*y); } 32.以下程序的执行结果是_______. #include static int a=5; main( ) { printf("a=%d\n",a); p1( ); p2( ); } p1( ) { printf("a*a=%d\n",a*a); a=2; } p2( ) { printf("a*a*a=%d\n",a*a*a); } 33. 以下程序的执行结果是_______. #include static int x=5; main( ) { auto int x=3; printf("1.x=%d\n",x); f1( ); f2( ); printf("4.x=%d\n",x); } f1( ) { x+=1; printf("2.x=%d\n",x); } f2( ) { int x=1; printf("3.x=%d\n",x); } 34. 以下程序的执行结果是_______. #include main( ) { int a[ ]={3,8,4,2},i; int x=0; for (i=0;i<4;i++) { func(a,x); printf("%d",x); } printf("\n"); } func(s,y) int s[ ],y; { static int t=0; y=s[t]; t++; } 35. 以下程序的输出结果是________. main( ) { int b=5; #define b 2 #define f(x) b*(x) int y=3; printf("%d,",f(y+1)); #undef b printf("%d,",f(y+1)); #define b 3 printf("%d\n",f(y+1)); } 36.以下程序的输出结果是________. #define DEBUG main( ) { int a=14,b=15,c; c=a/b; #ifdef DEBUG printf("a=%d,b=%d,",a,b); #endif prinf("c=%d\n",c); } 37. 以下程序的输出结果是________. main( ) { int a=20,b=10,c; c=a/b; #ifdef DEBUG printf("a=%d,b=%d,",a,b); #endif prinf("c=%d\n",c); } 四、编程题以下题目除非有特别说明,可以用第一至十二章的全部知识来实现。P120 (6.3, 6.4, 6.8, 6.11) P141 (7.5, 7.8, 7.13) P186 (8.6, 8.13, 8.16) P258 (10.4, 10.15, 10.16) P296 (11.3, 11.4, 11.5)

答案

一、选择题1.D 2.C 3.A 4.C 5.B 6.B 7.D 8.D 9.B 10.A 11.(1)C (2)C 12.A 13.(1)C (2)C 14.(1)C

(2)C 15.(1)C (2)B (3)A16.D 17.C 18.A 19.(1)D (2)C 20.A 21.D 22.B,A 23.A,B 24A25.C 26.A 27.B 28.D 29.C 30.C 31.A 32.A 33.A 34.C35.D 36.B37.D 38.A 39.C 40.A 41.C 42.C 43.C 44.C 45.D 46.D 47.B 48.D 49.A 50.C 51.C 52.D 53.B 54.A55.C 56.A 57.C 58.B 59.B 60.C 61.B 62.A 63.C 64.A65.B 66.C 67.(1)A (2)C 68.(1)B (2)A 69.D 70.D 71.A 72.A73.B 74.A 75.C 76.C 77.B 78.C 79.B 80.D 81.C 82.A83.B 84.(1)A (2)D 85.D 86.B 87.C 88.B 89.(1)B (2)D (3)A (4)B (5)C 90.(1)D (2)C (3)A (4)A91.D 92.B 93.C 94.B 95.C 96.A `97.D 98.D 99.B 100.D101.D 102.C 103.D 104.D 105.B 106.A 107.D 108.A 109.B

二、填空题1.main()2.1 若干3.顺序分支循环4.main的第一个语句5.分号

6.编辑编译连接运行

7. 3

8. 1

9. 4 10. 1 11. 1 12. 0 13. (1)1 (2)0 (3)1 (4)0 14.3.141593,3.1416,3.142 15.3.500000,3.5 16.31.415920,3.14159e+01 17.c=k

18.end 19.d=20 20.s=2,t=3 21.first third 22.(1)y=0 (2)y=5 (3)y=10 (4)y=5

23.#& 24.s=7

25. * ** *** **** 26. 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 27. 1 121 12321 1234321 123454321 12345654321 28. * *** ***** ******* ***** *** * 29.sum=33

30.3 31.24 32.(1)'a' (2)'c' 33.(1) 4 (2)3 34.10,x 35.20,y 36.39,0,38,0 37.8 38.1,2,40,41 39.4,8 40.(1)文本文件(2)二进制文件41.出错42.清除abc原有的数据43.建立新文件44.正确的45.(1)fscanf/fprintf (2)fwrite/fread (3)fgets/fputs 46.(1)fseek (2)ftell 47.(1)fseek(fp,64,SEEK_SET) (2)fseek(fp,32,SEEK_CUR) (3)fseek(fp,16,SEEK_END) 48.1 3 5 7 9 49.11 13 15 17 19

50.fp=fopen("temp","r"); fscanf(fp,"%c%c",i,j);

三、读程序1.(1):7.000000 (2):6 (3):3.000000 (4):2 (5):6.000000 (6):1 2.(1):1 (2):1 (3):1 (4):4

(5):0 (6):1 3.(1):1 (2):0 (3):1 (4):2 (5):1 (6):0 4.(1):99 (2):0 (3):0 (4):2 (5):-9 (6):5 5.(1):1160 (2):47 (3):1010 (4):10 (5):500 (6):106 6.(1):177543 (2):0 (3):335 7.a=-32768,b=32767 8.a=32767,b=-32768 9.a=32767,b=32768 10.a=-32768,b=32768 11. n1=1,n2=6 12.10 13.i=10,j=2 14.5,2 15.i=10 16.ch=f 17.s=24 18.654321 19.12 20.6385 21.xbcdBCD 22.x=1 23.x=10 24.8,17 25.48 26.a=10,b=3 27.a=3,b=10 28.s=55 29.s=10 30.0246 31.10*12=120 32.a=5 a*a=25 a*a*a=8 33. 1.x=3 2.x=6 3.x=1 4.x=3 34. 0000 35.8,20,12 36.a=14,b=15,c=0 37.c=2

江苏大学大一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语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

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

《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) 与机器字长有关

(完整版)c语言期末考试题及其答案

选择题(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++ 写出下列程序的运行结果(10分,每小题2分) 1.float average (float array[10]) { int i;

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { 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 9.以下程序的输出结果为(B)。 #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分,每小题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);

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语言程序设计期末考试试卷和答案

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效

A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是() for(i=0;i<3;i++) printf(″%d″,x[i][2-i]); A).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>3) );

大一c语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(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;

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

选择题 1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 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.V oid 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.A.dat 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=1-.le-1; B.double b=1+5e2.5; 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) 14.已知x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假”

大一上学期C语言期末复习总结和模拟试题带答案

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

大一C语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了_______________个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是 _______________。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; _______________; i++) if (_______________) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是 _______________ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= _______________; p1++, p2++) _______________=_______________; *p2= ______________; printf(“string a is:%s\n”,a); printf(“string b is:%s\n”,b); } 6. 下面程序用冒泡法对数组a进行降序排序,请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=0;i<4;i++) for(j=0;j<_______________;j++) if( _______________< _______________ ) { m=a[ j]; a[ j]=a[ j+1]; a[ j+1]= m; } for(i=0;i<5;i++) printf("%d ",a[i]); } 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<_______________;i++,j--)

上海海事大学(C语言期末)上机题库

试卷编号:9688 所属语言:C语言 试卷方案:期中考试 试卷总分:100分 共有题型:5种 一、填空共15题(共计15分) 第1题(1.0分)题号:528 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是【1】. 答案: =======(答案1)======= 28 第2题(1.0分)题号:78 已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是【1】. 答案: =======(答案1)======= 15 第3题(1.0分)题号:510 若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】. 答案: =======(答案1)======= 2 第4题(1.0分)题号:437 以下程序的输出结果为【1】, #include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);}

答案: =======(答案1)======= 9,10 第5题(1.0分)题号:431 执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf("%d %c",c1,c2); 答案: =======(答案1)======= 97 b *第6题(1.0分)题号:293 getchar()函数只能接收一个【1】. 答案: =======(答案1)======= 字符 第7题(1.0分)题号:440 设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案: =======(答案1)======= 1 第8题(1.0分)题号:95 已知a=13,b=6, a&&b的十进制数值为【1】. 答案: =======(答案1)======= 1 第9题(1.0分)题号:306 当a=1,b=2,c=3时,执行以下程序段后b=【1】.

C语言期末考试复习题及答案

C语言期末考试复习题及答案 一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正 确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。 (1)C语言规定:在一个源程序中,main函数的位置 D 。 A)必须在最后B)必须在系统调用的库函数的后面。 C)必须在最开始。。D)可以任意 (2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。 A)必须为字母或下划线。。B)必须为下划线。 C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 (3)下面四个选项中,均是正确的八进制数或十六进制数的选项是 B 。 A)-10 0x8f -011 B) 010 -0x11 0xf1 C) 0abc -017 0xc D) 0a12 -0x123 -0xa (4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 A 。 A)0 ~ 65535 B)0 ~ 32767 C)-32767 ~ 32768 D)-32768 ~ 327687 (5) 若有定义:int a = 7; floa x = , y = ; 则表达式x + a % 3 * (int) (x + y) % 2/4 的值是 D 。 A) B) 0.00000 C) D) (6)已知ch是字符型变量,下面不正确的赋值语句是 B 。 A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ; (7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的

大学生C语言期末考试必做题库

C语言

第一题 在屏幕上显示一个短句“Programming in C is fun!” #include int main() { printf("Programming in C is fun!\n"); return 0; } 第二题 在屏幕上显示如下网格。 +---+---+ | | | | | | +---+---+ #include int main( ) { printf("+---+---+\n| | |\n| | |\n+---+---+\n"); return 0; } 第三题 在屏幕上显示一条语句“This is a C program.” #include int main() { printf("This is a C program.\n"); return 0; } 第四题 输出如下图形: ********** very good! ********** #include int main( ) { printf("**********\nvery good!\n**********\n"); return 0; }

第一题求平方根(基础) 程序填空,不要改变与输入输出有关的语句。 输入1个实数x,计算并输出其平方根(保留1位小数)。 例:输入17输出The square root of 17.0 is 4.1 #include #include int main( ) { double x, root; scanf("%lf", &x); root=sqrt(x); printf("The square root of %0.1f is %0.1f\n", x, root); return 0; } 第二题计算一个三位数的个十百位之和 编写程序。 输入一个三位数(大于0),计算这个三位数的个位、十位、百位数字之和. 例如:输入:152输出:sum=8 #include #include int main() { int n,a,b,c,sum; scanf("%d",&n); a=n/100; b=n%100/10; c=n%10; sum=a+b+c; printf("sum=%d\n",sum); return 0; } 第三题(公共)求圆的周长、面积及圆球体积 程序填空,不要改变与输入输出有关的语句。 求以r为半径的圆周长c和圆面积s,再求以r为半径的圆球体积v。(已知r=3.67在程序中直接赋值,pi的值为3.1415926) 按照下列形式输出: printf("c=%f\ns=%f\nv=%f\n",c,s,v); #include int main( ) { double r,c,s,v,pi=3.1415926; r=3.67; c=2*pi*r;

大一c语言考试试题

单 项 选 择 题 ( 每 小 题 2 分 1、 一个C 程序的执行是从 A 。 A 、 本程序的main 函数开始,到main 函数结束 B 、 本程序的main 函数开始,到本程序文件的最后一个函数结束 C 、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 D 、本程序文件的第一个函数开始,到本程序 main 函数结束 2、 C 语言程序的基本单位是 C 。 A 、 程序行 B 、语句 C 、 函数 D 、字符 3、 请选出可用作 C 语言用户标识符的一组标识符 __B___。 A 、 void B 、 a3_b3 C 、 For D 、 2a define _ 123 -abc DO WORD IF ase sizeof 4、假定x 和y 为double 型,则表达式(x=2,y=x+5/2)的值是__C A 、4.500000 B 、4 C 、 4.000000 5、下列可以正确表示字符型常量的是 ___D C 、 "\n" D 、 '\t' 6、在C 语言中,要求运算数必须是整型的运算符是 __D, 、 ++ 7、C 语言中,复合语句的构成是将一系列语句置于 __C A 、 begin 与 end 之间 B 、方框号“ [ ] ”之间 C 、花括号“ { } ”之间 D 、圆括号“ ( ) ”之 间 8、有如下程序段,对应正确的数据输入是 ___A___。 float x,y; scanf( ”%f%f ” , &x,&y); printf( ”a=%f,b=%f ”, x,y); A 、 2.04<回车> B 、 2.04,5.67< 回车> 5.67< 回车> C 、 A=2.04,B=5.67< 回车> D 、 回车> 9、以下程序段的输出结果是 __ _D__。 int a=5678; printf( ”%2dn ”, a); A 、提示出错、无结果 B 、 56 C 、 78 D 、 5678 10、已知: char ch='A' ;则下列表达式的值是 __B ch = (ch>='A'&&ch<='Z') ? (ch+32) : ch; A 、A B 、a C 、Z D 、z 11、下列描述,正确的是 ___B__ 。 、 2.000000 A 、 297 B 、 "a

2019年C语言期末考试题与答案

1、给定n个数据, 求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)。 最大值第三行i<=n五行k+1 2、编写程序求无理数e的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N×M整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。例如:输入的数组为: 1 2 3 4 1 5 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 .专业资料.

.专业资料. 11、请编一个函数void fun(int tt[M][N],int pp[N]), tt 指向一个M 行N 列的二维数组,求出二维数组每列 中最大元素,并依次放入pp 所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun 用比较法对主程序中用户输入的具有10 个数据的数组a 按由大到小排序,并在主程序中输出 排序结果。 13、编写main 程序调用函数fact 求解从m 个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m 不能小于n ,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a 和b 分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 19、对任意输入的 x ,用下式计算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m 以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x 是否是同构数。若是同构数,函数返回1; 否则返回0。x 的值由主函数从键盘读入,要求不大

大一c语言期末试题及参考答案word版本

2004级信息学院《C语言设计》考试试题 一、判断下列语句或程序的对错。 10分√ 1 int x=y=z=’0’; (×) y,z没有定义 2 #include ; (×)不能有分号,#开头的结尾均不能有分号; 3 printf(“%s\n”,”c language”); (√) 4 float a[100]; int *p=a; (×)数据类型不匹配 5 char str[20]; 6 int data[4]={0,1,2,3,4}; (×)五个元素,但是只有四个单元 7 float x=1.45e+310L; (×)数值越界 8 int xyz-1=2; (×) 9 int x=‘\xae’ ; (√) 10 int *p,a[2][3] ; p=a ; (×)数据类型不匹配 二计算下列表达式的值 10分 设 unsigned int a=10,b=17,c=5,d=3; float f ; (1)f=b/c ( 3.0 ) (2)!(a+b)+c-1&&b+c/2 ( 1 ) (3)(a^b)+(c>>1+d) ( 0x1b ) (4)a+=b%=a=b ( 17 ) (5)a=2,b=a*++b ( 2 ) 三程序改错 10分 (1)求两个浮点数的平方和及平方差 #include float calculate (float x,float y,float *sub);添加函数原型声明 main () { float a,b; float add_reasult, sub_result; scanf (“%f,%f”,a,b); add_result=calculate(a,b,&sub_result); printf( “a*a+b*b=%d,a*a-b*b=%d\n”,add_result,sub_result); } float calculate (float x,float y,float *sub) 添加函数类型 { float *temp; 应该直接定义为变量float temp; sub=a*a-b*b ; *sub=a*a-b*b;

相关文档
相关文档 最新文档