当前位置:文档之家› 大一上学期C语言期末复习总结和模拟试题带答案

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

大一上学期C语言期末复习总结和模拟试题带答案
大一上学期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相等,后

者表示如果a和3相等,把

b值赋给a.由于习惯问题,初学者往往会犯这样的错误.

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

5.忘记加分号.

分号是C语句中不可缺少的一部分,语句末尾必须有分号.

a=1

b=2

编译时,编译程序在"a=1"后面没发现分号,就把下一行"b

=2"也作为上一行语句的一部分,这就会出现语法错误.改错时,

有时在被指出有错的一行中未发现错误,就需要看一下上一行是否

漏掉了分号.

{

z=x+y;

t=z/100;

printf("%f",t);

}

对于复合语句来说,最后一个语句中最后的分号不能忽略不写

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

6.多加分号.

对于一个复合语句,如:

{

z=x+y; t=z/100;

printf("%f",t);

};

复合语句的花括号后不应再加分号,否则将会画蛇添足.

又如:

if (a%3==0);

I++;

本是如果3整除a,则I加1.但由于

if (a%3==0)后多加了分号

,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都

将自动加1.

再如:

for (I=0;I<5;I++);

{scanf("%d",&x);

printf("%d",x);}

本意是先后输入5个数,每输入一个数后再将它输出.由于for

()后多加了一个分号,使循环体变为空语句,此时只能输入一个数

并输出它.

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

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

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

7.输入变量时忘记加地址运算符"&".

int a,b;

scanf("%d%d",a,b);

这是不合法的.Scanf函数的作用是:

按照a,b在内存的地址将a,

b的值存进去."&a"指a在内存中的地址.

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

8.输入数据的方式与要求不符.

①scanf("%d%d",&a,&b);

输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:

3,4

输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车

键,跳格键tab.

②scanf("%d,%d",&a,&b);

C规定:如果在"格式控制"字符串中除了格式说明以外还有其它

字符,则在输入数据时应输入与这些字符相同的字符.下面输入是

合法的:

3,4

此时不用逗号而用空格或其它字符是不对的.

3 4 3:4

又如:

scanf("a=%d,b=%d",&a,&b); 输入应如以下形式:

a=3,b=4

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

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

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

9.输入字符的格式与要求不一致.

在用"%c"格式输入字符时,"空格字符"和"转义字符"都作为有效字符输入.

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

如输入a b c

字符"a"送给c1,字符" "送给c2,字符"b"送给c3,因为%c

只要求读入一个字符,后面不需要用

空格作为两个字符的间隔.

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

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

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

10.输入输出的数据类型与所用格式

说明符不一致.

例如,a已定义为整型,b定义为实型

a=3;b=4.5;

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

编译时不给出出错信息,但运行结果

将与原意不符.这种错误尤其

需要注意.

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

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

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

11.输入数据时,企图规定精度.

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

这样做是不合法的,输入数据时不能

规定精度.

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

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

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

12.switch语句中漏写break语句.

例如:根据考试成绩的等级打印出百

分制数段.

switch(grade)

{ case 'A':printf("85~100\n"); case 'B':printf("70~84\n");

case 'C':printf("60~69\n");

case 'D':printf("<60\n"); default:printf("error\n");

由于漏写了break语句,case只起标号

的作用,而不起判断作用.

因此,当grade值为A时,printf函数

在执行完第一个语句后接着执

行第二,三,四,五个printf函数语句.

正确写法应在每个分支后

再加上"break;".例如

case 'C':printf("60~69\n");break; ********************************

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

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

13.忽视了while和do-while语句在

细节上的区别.

(1)main()

{int a=0,I;

scanf("%d",&I); while(I<=10)

{a=a+I;

I++;

}

printf("%d",a);

}

(2)main()

{int a=0,I;

scanf("%d",&I);

do

{a=a+I;

I++;

}while(I<=10);

printf("%d",a);

}

可以看到,当输入I的值小于或等于10时,二者得到的结果相同.

而当I>10时,二者结果就不同了.因为while循环是先判断后执行

,而do-while循环是先执行后判断.对于大于10的数while循环一

次也不执行循环体,而do-while语句则要执行一次循环体.

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

************************ 14.定义数组时误用变量. int n; scanf("%d",&n); int a[n]; 数组名后用方括号括起来的是常量表达式,可以包括常量和符号常 量.即C 不允许对数组的大小作动态定义. **************************************************************************************** 15.在定义数组时,将定义的"元素个数"误认为是可使的最大下 标值. main() {static int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d",a[10]); } C 语言规定:定义时用a[10],表示a 数组有10个元素.其下标值由0 开始,所以数组元素a[10]是不存在的. **************************************************************************************** 16.初始化数组时,未使用静态存储. int a[3]={0,1,2}; 这样初始化数组是不对的.C 语言规定只有静态存储(static)数组 和外部存储 (exterm)数组才能初始化.应改为: static int a[3]={0,1,2}; **************************************************************************************** 17.在不应加地址运算符&的位置加了地址运算符. scanf("%s",&str); C 语言编译系统对数组名的处理是:数组名代表该数组的起始地址 ,且scanf 函数中的输入项是字符数组名,不必要再加地址符&.应 改为:scanf("%s",str); **************************************************************************************** 18.同时定义了形参和函数中的局部变量. int max(x,y) int x,y,z; {z=x>y?x:y; return(z); } 形参应该在函数体外定义,而局部变量应该在函数体内定义.应改 为: int max(x,y)

int x,y;

{int z;

z=x>y?x:y;

return(z);

}

试题一

一、单项选择题(共30分,每题1分)

C1. 下列不正确的转义字符是

A.\\

B.\‘

C.074

D.\02. 不是C语言提供的合法关键字是

A.switch

B.cher

C.case

D. default

3.正确的标识符是()A.?

a B.a=2 C.a.3 D.a_3

4.下列字符中属于键盘符号的

是A.\ B.\n C.\t D.\b

.下列数据中属于“字符串常量”的A.ABC B.“ABC” C.‘ABC’ D.‘A’6.char型常量在内存中存放的是

A.ASCII码

B.BCD码

C.内码值

D.十进制代码值

7.设a为5,执行下列语句后,b 的值不为2的是()

A.b=a/2

B.b=6-(——

a) C.b=a%2 D.b=a>3?2:2

8.在以下一组运算符中,优先级最高的运算符是()

A.<=

B.=

C.%

D.&&

9.设整型变量i的值为3,则计算表达式i——i后表达式的值是()

A.0

B.1

C. 2

D.表达式出错

10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是()

A.6

B.9

C.8

D.表达式出错

11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()

A.1

B.2

C.2.0

D.2.5

12.设a=1,b=2,c=3,d=4,则表达式:a

A.4

B.3

C.2

D.1

13.设a为整型变量,不能正确表达数学关系:10

A.10

B.a= =11 || a= =12 || a= =13 || a= =14

C.a>10&&a<15

D.!(a<=10)&&!(a>=15)

14.若有以下定义:char a、 int

b 、 float

c 、 double d,则表达式a*b+d-c值的类型为()

A.float

B.int

C.char

D.dou ble

15.表达式“10!=9”的值是()

A.true

B.非零

值 C.0 D.1

16.循环语句 for (x=0,y=0;(y!=123)|| (x<4);x++);的循环执行()

A.无限次

B.不确定次

C.4

次 D.3次

17.在C语言中,下列说法中正确的是()

A. 不能使用“do while”的循环

B.“do while”的循环必须使用break语句退出循环

C.“do while”的循环中,当条件为非0时将结束循环

D.“do while”的循环中,当条件为0时将结束循环。

18.设a,b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b)后使a为‘A’,b为‘B’,从键盘上的正确输入是()

A.‘A’‘B’

B.‘A’,

‘B’ C.A=A,B=B D.a=A,b=B

19.设i,j,k均为int型变量,执行完下面的for循环后,k的值为()

for (i=0,j=10;i<=j;i++,j ——)k=i+j;

A.10

B.9

C.8

D.7

20.设有定义:char

s[12]={“string”};则printf (“%d\n”,strlen(s));的输出是()

A.6

B.7

C.11

D.12

21.合法的数组定义是()

A.int a[]={“string”};

B.int a[5]={0,1,2,3,4,5};

C.char a={“string”};

D.char a[]={0,1,2,3,4,5}

22.函数调用strcat(strcpy (str1,str2),str3)的功能是()

A. 将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

B. 将字符串str1复制到字符串str2中后再连接到字符串str3之后

C. 将字符串str1复制到字符串str2中后再复制到字符串str3之后

D. 将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中

23.设有如下定义,则正确的叙述为()

char x[]={“abcdefg”};

char y[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’};

A.数组x和数组y等

B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度

D.数组x的长度小于数组y的长度

24.设有单精度变量f,其值为13.8.执行语句“n=((int)f)%3;”后,n的值是()

A.4

B.1

C.4.333333

D.4 .6

25.执行语句“f=(3.0,4.0,5.0),(2.0,1.0,0.0);”后,单精度变量f的值是()

A.3.0

B.5.0

C.2.0

D.0. 0

26.设a、b均为整型变量,下列表达式中不是赋值表达式的是()

A.a=3,4,

5 B.a=3*2 C.a=a&&b D.a= b=4

27.表达式“1?(0?3:2):(10?1:0)”的值为()

A.3

B.2

C.1

D.0

28.sizeof(double)的结果值是()A.8 B.4 C.2 D.出错

29.指出下面正确的输入语句是()

A.scanf (“a=b=%d”,&a,

&b); B.scanf(“a=%d,b=%f”,&m,&f);

C.scanf(“%3c”,

c); D.scanf(“%5.2f,&f);

30.若有以下定义和语句,且

0<=i<5,则()是对数组元素地址的正确表示

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

p=a;

A.&

(a+i) B.&p C.a++

D.&p[i]

二、填空(20分,每空1分)1.在内存中存储“A”要占用( 2 )个字节,存储‘A’要占用( 1 )字节。

2.符号常量的定义方法是

(#define 符号常量常

量)。

3.能表述“2020 && x<30)|| x<-100 )。

4.结构化程序设计方法规定程序或程序段的结构有三种:顺序结构、(分支结构)和(循环结构)。

5.C语言共提供了三种用于实现

循环结构的流程控制语句,它们是( while )、( do-while )和( for )。

6.若在程序中用到“putchar”,应在程序开头写上包含命令

(.#include “stdio.h”),若在程序中用到“strlen()”函数时,应在程序开头写上包含命令(# include “string.h”

)。

7.设有定义语句“static int

a[3][4]={{1},{2},{3}}”,则a[1][1]值为(),a[2][1]的值为()。

8.“*”称为(指针运算符)运算符,“&”称为(地址运算符)运算符。

9.赋值表达式和赋值语句的区别在于有无(分号)号。

10.用{}把一些语句括起来称为( .复合语句)语句

11.设a=12、b=24、c=36,对于“scanf (”a=%d,b=%d,c=%d“,&a,&b,&c);”,输入形式应为(a=12,b=24,c=36 )

12.表达式“sqrt(s*(s-a)*(s-b)*(s-c));”对应的数学式子为()

13.C语言编绎系统在判断一个量是否为“真”时,以0代表“假”,以(非0 )代表“真”

三、读程序(30分)

1. main()

{ int a=10,b=4,c=3;

if (a

if (a

printf(“%d,%d,%d”,a,b,c);}

2. main()

{int y=9;

for (;y>0;y——)

if (y%3= = 0) {printf (“%d”,——y);continue;}

3. main()

{ int x,y;

for (y=1,x=1;y<=50;y++)

{ if (x>=10) break;

if (x%2= =1) { x+=5;continue;}

x-=3; }

printf (“%d”,y)4. main()

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

int i,j,s1=0,s2=0; i,j,s1=0,s2=0;

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

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

{ if (i= =j )s1=s1+a[i][j];

if (i+j= =2) s2=s2+a[i][j];

}

printf (“%d\n%d\n”,s1,s2);}

5. main()

{static char a[]={‘*’,‘*’,‘*’,‘*’,‘*’};

int i,j,k;

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

{printf (“\n”);

for (j=0;j

for (k=0;k<5;k++) printf (“%c”,a[k]); } }

6. int fac(int n)

{static int f=1;

f=f*n; return(f);}

main()

{int i;

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

printf (“%d!=%d\n”,i,fac (i));}

四、编写程序(20分)

1. 编一个程序,输入X的值,按下列公式计算并输出Y的值

2. 编程序按下列公式计算e的值(精度为1e-6)

e=1+1/1!+1/2!+1/3!+……1/n!

参考答案:

一、单项选择题(共30分,每题

1分)

1.C

2. B

3. D

4. A

5. B

6.

A 7. C 8. C 9. A 10. A 11.

C 12.

D 13. A 14. D 15. D 16.

C 17.

D 18. D 19. A 20. B 21.

D 22. A 23. C 24. B 25. D 26.

D 27. B 28. A 29. B 30. C

;}二、填空(20分,每空1分)

1.2,1

2.#define 符号常量常量

3.(x>20 && x<30) || x<-100

4.分支结构,循环结果

5.while do for

6.#include “stdio.h” # include “string.h”

7.a[1][1]=0 , a[2][1]=0

8.* 指针运算符, &地址运算符

9.分号;

10.复合语句

11.a=12,b=24,c=36

13.非0

三、读程序(30分)

1.结果:10,4,3

2.结果:8 5 2

3.6

4.18 10

5.*****

6.5!=120

四、编写程序(20分1. Main()

{int x,y;

scanf (“%d”,&x);

if (x<=1) y=x;(x<=1) y=x;

else if (x>1&&x<10) y=2*x-1;

else y=3*x-11;

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

}bsp; }

2.Main ()

{float E ; int n ; s=0;E=1;

试题二

一、单项选择题(每小题2分,共50

分)

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

D 、2.000000

5、下列可以正确表示字符型常量的是

___D__。

A 、297

B 、"a"

C 、"\n"

D 、'\t'

6、在C 语言中,要求运算数必须是整

型的运算符是__D__。

A 、/

B 、++

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 、2.045.67<回车>

9、以下程序段的输出结果是___D__。

int a=5678;

printf(”%2d\n ”, 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__ 。

A 、表达式3.91%5是合法的

B 、用b=89作为while 循环的条

件是合法的

C 、逗号表达式是没有值和类型的

D 、字符型变量和int 型变量的操

作完全不同

12、阅读以下程序:

main() {int x; scanf("%d",&x); if(x--<5) printf("%d",x); else printf("%d",x++); } 程序运行后,如果从键盘上输人5,则输出结果是__B__ 。 A 、3 B 、 4 C 、 5 D 、 6 13、下列程序的运行结果是___C__。 #include ”stdio.h ” main() { int k; k=3; switch(k) { case 1: printf(”%d\n ”, k++); case 2: printf(”%d\n ”, k++); case 3: printf(”%d\n ”, k++); case 4: printf(”%d\n ”, k++); break; default: printf(”Full!\n ”); } } A 、3 B 、4 C 、3 D 、4 4 4 14、设a 、b 、c 、d 、m 、n 均为int 型变量,且a=5、b=6、c=7、d=8、 m=2、n=1,则逻辑表达式(m==a=10) break; if (b%3==1) { b+=3; continue; } }

printf("%d\n",a); } A 、4 B 、6 C 、5 D 、101 17、执行以下程序后输出的结果是___D__。 main()

{ int y=10; do {y--;}

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

A 、-1

B 、1

C 、8

D 、0

18、执行以下程序后输出的结果是___B__。 main()

{int i, j, w=0; for(i=4; i; i--) for(j=1;j<=2;j++) w=w+i*j; w=i*j;

printf("%d\n",w); } A 、4 B 、0 C 、1 D 、30 19、以下程序运行后,输出结果是__C__。 main() { int n[5]={3,3,3},i,k=2; for(i=0;i

n[i]=n[i]+1; printf("%d\n",n[k]);

}

A 、4

B 、9

C 、3

D 、不确定的值 20、以下程序的输出结果是 __A__ 。 f ( int a) {int b=0; static int c = 3; b++; c++; return(a+b+c); } main() {int a = 2, i; for(i=0;i<3;i++) printf("%d\n",f(a)); } A 、 7 B 、 7 C 、 7 D 、 7 8 9 10 7 9 11 13 7 21、设C 程序如下: #define ABC(x) x*x #include"stdio.h" main() {int a=3,b; b=ABC(a+1); printf("b=%d", b); } 上述程序运行输出的结果是__D_ 。 A 、b=4 B 、b=a+1 C 、b=16 D 、b=7 22、以下程序的输出结果是__B__。 main() {int i, a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d %d %d",a[1],a[6],a[9]); } A 、 1 6 9 B 、9 4 1 C 、9 6 1 D 、3 5 7 23、若定义:float x=3.14159,*p=&x; 则printf("%f\n",*p++);的输出结果为__C__ 。 A 、无确定值 B 、x 的地址 C 、 3.14159 D 、4.14159 24、以下程序的输出结果是___B__ main() {char b[]="Language"; char *p=b; printf("%c ",*(b+2)); p=p+7; printf("%c\n",*p++); } A 、2 7 B 、n e C 、a g D 、n u 25、下列程序的输出结果是___A__。 #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,0}, i, s, *p; p=a;s=0; for(i=0;i<=9;i++) s+=*p++; printf("%d\n", s); } A 、45 B 、44 C 、0 D 、9 二、判断题(每小题1分,共10分) 1.语句int *point ;中的point 是指针变量名。( T ) 2.主函数和其它函数之间可以相互调用。( F ) 3.puts( )和gets( )函数只能输入或输出一个字符。( F ) 4. 可以对字符型数组元素进行整体输入、输出。( T )

5.do-while 语句构成的循环不能用其他语句构成的循环来代替。( F ) 6.在一个函数内的复合语句中定义的变量可以在本函数范围内有效。(F ) 7.函数必须有返回值,否则不能使用函数。( F ) 8.for(;;);语句相当于while(1);语句。( T ) 9.C 程序的执行总是从第一个定义的函数开始。( F ) 10.C 语言中的关键字专门用作语言的特定成分,而不能作为一般标识符使用。( T ) 三、程序填空题(每空2分,共10分) 1、下面程序完成判断某一个数m 是否为素数,如果是则输出"m is a prime!",否则就输出"m is not a prime!",请选择填空。 main() { int i, m; scanf("m=%d", &m); for(i=2; i

#include void main()

{ int i, j, k, w, count = 0;

for( (3) ; i<=9; i++) for(j=0;j<=9; j++) for(k=0; k<=9;k++)

if( (4) ) { w =

i*100+j*10+k; if( (5) ) count++; } printf("\n count=%d\n", count); } (3)、 A 、i=0 B 、i=1 C 、i=9 D 、i=-1 (4)、 A 、i!=j B 、i!=j ||j!=k C 、i!=j&& j!=k D 、i!=j&& j!=k && k!=i (5)、 A 、w%13=0 B 、w/13=0 C 、w%13==0 D 、w/13==0 四、编程题(第1小题12分,第2小题18分,共30分) 1、从键盘输入一个4位数的正整数n ,将该数反序输出。例如,若输入的是

1357,则输出的是7531。 要求:1)利用VC++编译系统进行

调试、运行

2)对输入的正整数n 的合

法性进行检查 3)将源程序以“编程题

1.c ”为文件名保存在

网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他

地方均不能得分

2、已知一组字符串

a[27]="jjyyzzabcdefgJJYYZZABC

DEFG"; 请编一程序,将其中的小写字母换成其前一个字母,即z换成y,y换成x,...,b换成a,若是a则换成z。然后对数组a[27]从小到大排序,并输出排序后的字符串。

要求:1)利用VC++编译系统进行调试、运行

2)先输出原字符串(即未做任何改变的字符串),最后输出排序后

的字符串

3)将源程序以“编程题

2.c”为文件名保存在网络

盘(K:盘)的考生文件夹

上,用其它文件名保存或

保存在其他地方均不能得

c语言实训总结报告125041330

实习报告书 防灾科技学院灾害信息工程系 2013年制 实习目的:

本课程是信息管理与信息系统专业的一门专业必修课程,是学生学习完C 语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。也是信息管理与信息系统专业实习、信息管理与信息系统生产实习、信息管理与信息系统毕业实习课程的基础。 本次实习通过4-5个综合性强、实用性强的应用实例,使学生了解本专业毕业生所能从事的工作种类及工作岗位规格要求;培养学生掌握面向过程程序设计的基本素养、思维方法及技能,能够熟练应用C程序设计语言描述问题、解决问题,提高学生的综合编程能力。使学生进一步明确学习目标、增强学习动力、培养学习兴趣,为后继专业课程的学习打下坚实的基础。 实习任务概述: 任务一:万年历 任务二:学生成绩管理系统 任务三:简易四则运算计算器 任务四:双人对战五子棋 实习所用软件简介: Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft 公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。 Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过一个名为Developer Studio的组件集成为 任务一:万年历 1.系统需求分析 在日常生活中经常需要用计算器,比如科学计算、数值计算、会计业务等,实现一个简单的四则运算计算器,拥有加、减、乘、除功能,使用户方便、快捷。 2.系统环境要求 使用C语言在VC环境下设计一个带图形界面的简易四则运算计算器,需要Windows 2000y以上的系统,Visual C++6.0/2008 (x86 & x64)/2010 (x86 & x64),Win32 Console Application和EasyX库。 3 系统功能及模块图 1.输入年份,打印出十二月历和对应的星期 2.输入年月,打印出该月的日历和对应的星期 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语言程序设计模拟试题2(附答案)new

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是______ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是________。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) { if (x>amax) amax=x; else if (x

} 4.设n 是整型变量,且已具有某正整数值。根据下述数学式 1 1 14131312121+? ++?+?+n n 求s 的值并输出。 可编写如下之程序段实现之。请填空。 int k; double s,d; s=0.0; d=1.0; K=0; do { s=s+d; ___ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是____ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是_________ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

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语言期末考试试题

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语言程序设计模拟试题2(附答案)new

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #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); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 )

c语言实验报告总结

篇一:《C语言上机实验心得》 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点 1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后

输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在

一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更 多。由此可看出上机实践的重要性。 通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过但随着练习的增多,我对C语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。

大一C语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了______15__个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是___3.1416__。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; __i<100 ___; i++) if (_(i%3==0)&&(i%10==6)_) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是____7____ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= __'\0'____; p1++, p2++) *p2 _=_*p1; *p2= ___'\0'______; 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<____4____;j++) if( a[j]

C语言模拟试题1

一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表:

下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内

c语言实践小结

c语言实践小结 篇一 在初学c语言的一个学期后,我们进行了c语言实训阶段,尝试编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是c语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了c语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。 在这次实训中,我对对c语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对c语言的学习产生浓厚的兴趣。 还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲课中海给我们分享他在公司上班的一些心得和体会,还有那些我们应该注意的事

项,这些是平时上课时无法学到的,是更深层次的巨大收获。通过这次实训,也使我们发现了许多问题。 在实训中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。而且遇到一些小错误运行不出来,就会烦躁不安,觉得有些自暴自弃或者抱怨项目的变态,以后要克服,尽量保持一颗良好的心态,学好c语言,也学好用c语言编写一个按要求的系统。 还有就是对于未来,近程就是下学期,我觉得我还有许多方面需要提高。首先我要继续学习好c语言的基础知识,然后能在电脑上熟练的运用。然后每天都能写一些程序,上网时候多看一些优秀的教程和优秀的代码。遇到问题时多和同学讨论,并且多弄出几套方案,多锻炼自己结局问题的能力和与同学合作的能力。 总之,这一切都成为我记忆里面的一个篇章,更是在c语言编程上的一个里程碑。篇二c语言实践心得体会 c语言实践心得体会 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

大学大一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语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些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语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

大一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语言考试试题

一、单项选择题(每小题2分,共50分) 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 D、2.000000 5、下列可以正确表示字符型常量的是___D__。 A、297 B、"a" C、"\n" D、'\t' 6、在C语言中,要求运算数必须是整型的运算符是__D__。 A、/ B、++ 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、2.045.67<回车> 9、以下程序段的输出结果是___D__。 int a=5678; printf(”%2d\n”, 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__ 。 A、表达式3.91%5是合法的 B、用b=89作为while循环的条件是合法的

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