其实函数和文件没有直接关系。将main函数作为单独文件只是因为程序简单等原因没有特意给主文件命名。任何一个函数只要你愿意都可以单独成一个文件,反过来,main函数所在的文件除main函数之外还可以有其他函数
这是老师给的一分以前卷子的参考题目和答案,明天就要补考了,题目很简单的应该,但我基本不懂,可我发现好象答案不对的,谁能帮我对一下谢谢了。答案附在后面A卷
一、单项选择题(每小题2分,共40分)。
1. 一个C语言程序至少包含一个( )函数
A. printf B. scanf C. main D.自定义
2.以下叙述正确的是( )
A. 在C程序中,main( )函数必须位于程序的最前面
B. C程序的每行中只能写一个语句
C. C语言本身没有输入输出语句
D. 在对C语言进行编译的过程中,可以发现注释中的错误
3.下列C语句不正确的有( )
A.x=y=14B.int x,y,z
C.x=4,y=13D.z=x+y
4. 在int(*prt)[3]语句中,关于标识符prt正确的选项是( )
A.定义不合法
B.一个指向整型变量的指针
C.一个指针,它指向一个具有3个元素的一维数组
D.一个指针数组名,每个元素是一个指向整型变量的指针
5. 与十六进制数200等值的十进制数为 ( )
A . 256 B. 512 C .1024 D. 2048
6.以下叙述中正确的是( )
A. C语言的源程序不必通过编译就可以直接运行
B. C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C. C源程序经编译形成的二进制代码可以直接运行
D. C语言中的函数不可以单独进行编译
7. putchar函数可以向终端输出一个( )。
A. 整型变量表达式值 B .实型变量值
C. 字符串 D. 字符或字符变量值
8.已知float a=10.6,a/=2的结果是( )
A.5.3 B.5.300000 C.5.0 D.5
9. 在下列符号中,哪个是合法的变量名?( )
A、 #jhgf B、 _gh3 C、 -76t D、 3ab
10. 有如下输入语句scanf(“a=%d,b=%d,b=%d”,&a,&b,&c)为使变量a的值为1,b 的值为3,c的值为2,从键盘输入数据的正确形式应是( ).
A.132<CR>B.1,3,2<CR>C.a=1,b=3,c=2<CR>D.a=1 b=3 c=2<CR>
11.已知字母A的ASCII码是65,以下程序的执行结果是( )
# include <stdio.h>
main ( )
{char c1=’A’,c2=’E’
printf (“%d,%d”,c1,c2)}
A. A , E B. 65 , 65 C. 65 , 69 D. 65 ,70
12. 在C语言中switch语句可以和( )关键字配合使用来构成多分支选择语句。
A. case B.break C. goto D. else
13.如果a=4,b=4,则!(a>b)的值为( )
A. 真 B 假 C 不确定
14.能正确表示“m≥5或m≤3”的关系表达式是( )
A.m>=5 or m<=3” B m>=5|m<=3
C. m>=5||m<=3 D.m>=5 + m<=3
15.已知一个函数的定义为: void abc ( ) { … }
则函数中 void 的含义是( )
A、 执行该函数后函数没有返回值 B、 执行该函数后不返回
C、 该函数可以返回任意类型的数据 D、 以上都不对
16.C语言的编译系统对宏命令的处理是( )
A.、在程序运行时进行
B、在程序连接时进行
C、和C程序中的其他语句同时进行编译的
D、在对源程序中其他成分正式编译之前进行
17.判断字符串s1是否大于字符串s2,应当使用( )
A.if (s1>s2) B. if (strcmp (s1,s2) )
C. if (strcmp(s2,s1)>0) D.if (strcmp(s1,s2)>0)
18.设有数组定义:char array[ ]=”China”则数组array所占的空间为( )个字节。
A. 4 B. 5 C. 6 D. 7
19. 若有定义:int x=7, p=&x则执行*p=*p+1x=x+2以后x的值是: ( )
A. 7 B. 8 C. 9 D. 10
20. 以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )
A. #define POWER(x) x*x
B. #define POWER(x) (x)*(x)
C.#define POWER(x) (x*x)
D.#define POWER(x) ((x)*(x))
二、填空题(每空2分,计20分)
1一个C源程序至少应包括一个_______。
2.程序三种最基本的结构是___________、_______________、_________________。
3.若a是int 型变量,且a的初值为6,则计算表达式a+=a*a后a的值为______。
4. 指针变量的含义是指向变量的_______
5.若有以下定义:float w[16]则w数组元素下标的取值范围是______到______。
6..设a=3, b=2, c=1, 则表达式a>b+c的值是_____________。
7..以下程序段的运行结果是______
char a[7]=”abcdef”
printf(“%c”,a[5])
三、读程序,写出运行结果(5*4分)
1.下面程序的运行结果是_______________________________________
# include <stdio.h>
main ( )
{ int a, b
a = 10
b = a*9
printf(“b = %d\n”, b)
}
2. 以下程序段的运行结果是__________
# define ADD(x) x+x
main( )
{ int m=1, n=2, k=3
int sum=ADD(m+n)*k
printf (“sum=%d”,sum)
}
3. 以下程序输入123456<CR>后的执行结果是______
# include <stdio.h>
main( )
{int a,b
scanf (“%2d%3d”,&a,&b)
printf (“a=%d,b=%d\n”,a,b)
}
4.下面程序的运行结果是_______________________________________。
main ( )
{ int i
for (i=1i<=5i++)
{ if (i%2)
printf (“*”)
printf (“#”)
}
printf (“#”)
}
5.以下程序的运行结果是_______
#include <stdio.h>
int a=10,b,*p
main( )
{p=&a
b=(*p)++
printf(“%d,%d\n”,a,b)
}
答案
1.A 2.C 3.C 4.C 5.B 6.C 7.D 8.B
9.B 10.C 11.C 12.A 13.A 14.C 15.A 16.D
17.B 18.C 19.C 20.A
二、填空题(每空2分,计20分)
1、主函数 2、顺序,选择条件,循环结构 3、42 4、地址 5、0,15
6、0 7、f
三、读程序,写出运行结果(5*4分)
1、 b=90 2、sum=10 3、a=12,b=345 4、*##*##*## 5、11,10
B卷
一、单项选择题(每小题2分,共40分)。
1.一个 C语言程序是由( )
A.函数组成
B.若干个过程组成
C.若干子程序组成
D一个主程序和若干子程序组成
2.以下叙述不正确的有( )
A. C程序中,语句之间必须用分号(;)分隔
B. C程序中,多行语句可以写在一行中
C. C程序中,可以不必包含主函数
D. C程序中,可以由多个函数组成
3.下列C语句不正确的有( )
A.x=y=14 B.int x,y,z C.x=4,y=13 D.z=x+y
4.已知int a = 5, 则执行a = a/2后的a值是 ( )
A. 2.5B. 2 C. 2.0 D. 3
5.判断整数a和b是否相等,应当使用 ( )
A.if (a==b) B. if (a=b) C. if (a, b) D. if (a!=b)
6.C语言的标识符的第一个字符必须为()
A.字母 B.下划线 C. 字母或下划线 D. 字母或下划线或数字
7. 已知字母A的ASCII码值为66,执行下面的程序:
main( )
{ char c1=’A’
printf(“%d %c\n”, c1, c1)
} 执行后输出结果是( )
A. 66 A B. A 66 C. 65 A D. A 65
8.在C语言中if语句可以和( )关键字配合使用来构成分支选择语句。
A. else B.breakC. gotoD. int
9. putchar函数可以输出一个( )。
A. 整型变量表达式值
B. 实型变量值
C. 字符串
D. 字符
10. C语言中while和do-while循环的主要区别是()。
A. do-while的循环体至少无条件执行一次
B. while的循环控制条件比do-while的循环控制条件严格
C. do-while允许从外部转到循环体内
D. do-while的循环体不能是复合语句
11. 如果a=4,b=4,则(a<b)的值为( )
A. 真 B 假 C 不确定
12.下面对变量说明错误的是( )
A. char c1, int x B. int a, b float x, y
C. int a int bD. char c1 int x
13.若有a=1,b=2,c=3,d=4则条件表达式 a >b? c : d的值为 ( )
A. 2 B. 1 C. 4 D. 3
14. 设变量a是整型,f是实型,i是double型,则表达式10+’a’+i*f的值的数据类型为( )
A.整型 B. floatC.double D.不确定
15.若有定义:int x, *pb则以下正确的赋值表达式是:
A)pb=&x B)pb=x C)*pb=&x D)*pb=*x
16.在C语言程序中,( )。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和函数均不可以嵌套
D. 函数的定义和函数均可以嵌套
17.以下程序段的运行结果是( )
char a[7]=”abcdef”
printf(“%c”,a[5])
A. d B. f C. eD.
18.凡是在函数中未指定存储类别的局部变量,其隐含的存储类别为()
A.自动(auto) B.静态(static) C.外部(extern) D.寄存器(register)
19.在int(*prt)[3]语句中,关于标识符prt正确的选项是()
A. 定义不合法
B. 一个指向整型变量的指针
C. 一个指针,它指向一个具有3个元素的一维数组
D. 一个指针数组名,每个元素是一个指向整型变量的指针
20.判断char型变量c1是否为小写字母的正确表达式是( )
A. (c1>=’a’)&&(c1<=‘z’ ) B. (c1>=a)&&(c1<=z )
C. (’a’<= c1 <=‘z’ )D. ( a<= c1 <= z )
二、填空题(每空2分,计20分)
1.在C语言中,表示逻辑“假”值用______ 。
2.在C语言中(以微型机为例),一个char型数据在内存中所占的字节数是_____一个float型数据在内存中所占的字节数是_____一个double型数据在内存中所占的字节数是__________。
3.若a是int 型变量,且a的初值为3,则计算表达式a+=a*a后a的值为______。
4.C源程序的基本单位是_______
5若有以下定义:int score[6] 则score数组元素下标的取值范围是______到______。
6. 字符‘0’的十进制ASCII码值是48,则字符‘9’的十进制ASCII码值是_______
7.有表达式 “20 <x <30”, 用C语言正确描述它应该是__________________________。
三、读程序,写出运行结果(5*4分)
1.执行下面的程序:
void main( )
{ int x=3, y=1
if ( x <y ) printf(“*****\n”)
elseprintf(“#####\n”)
}
其输出的结果是__________________________。
2.下面程序的运行结果是______________________________________(画□表示空格)。
假设输入1.23 50
# include <stdio.h>
main ( )
{ float x, y
scanf(“%f%f”, &x, &y)
printf(“x=%7.2f, y=%7.2f\n”, x, y )
}
3.写出下面程序的输出结果_______________________________________________。
main ( )
{ int a=10, b=14, c=3
if ( a <b ) a = b
if ( a <c ) a = c
printf(“a=%d, b=%d, c=%d\n”, a, b, c )
}
4.下面程序的输出结果是_____________
main()
{int number=0
while (number++>=1)
printf (“*%d\n”,number)
printf(“**%d\n”,number)
}
5以下程序的运行结果是_______
void increment( )
{int x=0
x+=1
printf(“%d”,x)
}
main( )
{increment( )
increment( )
increment( )
}
一、单项选择题(每小题2分,共40分)。
1.A 2.C 3.C 4.B 5.A 6.C 7.A 8.A
9.D 10.A11.B 12.A 13.C 14.C 15.A 16.B
17.B 18.A19.D 20.A
二、填空题(每空2分,计20分)
1、1 2、1,4,8 3、42 4、函数 5、0,5 6、57 7、x>20&&x<30
三、读程序,写出运行结果(5*4分)
1、#####2、x= 1.25 y= 50.00 3、a=14,b=14,c=3
4、**1 5、111