初级程序员(C语言)

一、 填空题
1、 当a=5,b=4,c=2时,表达式 a>b! =c的值是___1___。>的优先级比!=的高
2、函数参数包括和实际参数 形式参数 。
设int a[3][4]={{1,3,5,7},{2,4,6,8}};则*(a+1)的值为____3__。二维数组的a就是a[0]
3、字符型数据在内存中以 ASCII码 形式存储。
4、能被3整除又能被5整除的数的逻辑表达式为:m%30 && m%50。
5、整型数据在计算机内存中采用 二进制 存储。
6、结束循环或switch语句的控制语句是 break 。
7、数组___是具有相同数据类型变量的集合。
8、 C语言中的标识符只能由三种字符组成,它们是__字母,数字,和下划线.。
9、设int a=1,b=2,c=3,d;执行d=!(a十b十c)后,d的结果是__0
_。
10、在C语言中,二维数组元素的内存中的存放顺序是__按行存放____。
11、条件“2<x<3或x<-10”的C语言表达式是_x>2&&x<3||x<-10_____。(x>2&&x<3)||(x<-10)也可以
12、执行下面程序段后,k值是__36____。While(0)停止循环
#include “stdio.h”
main()
{int k=1,n=263;
do
{k*=n%10;
n/=10; }while(n);
printf("%d",k);
13、若有说明语句: char c=‘\72’; 则变量c 包含__1_个字符。声明它是一个 char ,只有 1个字符 的 内存空间
14、C语言程序由若干个 函数 构成,此特点称为程序的模块化。
15、著名的计算机科学家尼古拉斯·沃斯曾提出:程序=数据结构+ 算法 。
16、使数据按格式说明符的要求进行输出的函数是 printf 。
17、系统默认数组的下标变量的下标值是从 0 开始。a[0]
18、C语言中函数返回值的类型是由 函数定义时指定的类型 决定的。
19、C语言中表示静态存储类别的关键字是 static 。

二、 判断题
1、a123是正确的C语言标识。 ( 对 )
2、I\am,one_half, start$it和3pai都可以用作C语言程序中的标识符。 ( X ) 字母数字下划线
3、C语言中程序中,表达式5%2的结果是2.5。 ( X )1
4、“#include <stdio.h>”实现的是头文件的引用功能。( 对 )
5、C程序总是从主函数main开始执行,在main中结束。它只可以出现在程序的开始位置。( X )
6、如果int a=3,b=6,则表达式“a<b?a:b”的值是3。( 对 )
7、C程序每个语句和数据定义的后面必须有一个分号。( 对 )
8、Int p=&i,j;是正确的定义。( X )
9、char a(10)是对一维数组a的正确说明。( X )
10、常量的值在程序运行过程中不可改变。( 对 )
11、如有以下程序 int a[10]={1,2,3,4,5,6,7,8,9,10},p=a,则(p+8)=9。( 对 ) (p+i)与P[i]无条件等价
12、字符常量用双引号界定一个字符。( X )单引号
13、多个变量赋予同一初值,可以写成“float a=b=c=5.5; ”。( X)
14、自增运算符只能用于变量和表达式,而不能用于常量。( 对 )
15、break语句是结束本次循环,返回判断下一次循环的条件。( X )
16、C语言中”\0”是字符串结束标志。 ( X )’\0’
17、C语言中,如未指定存储类别的变量,其隐含的存储类别为 extern。 ( X ) 自动存储类别auto
18、C语言不能对数组作动态分配。( X )
19、在函数调用时,实际参数和形式参数可以同名。( 对 )
20、允许在不同的函数中使用相同的变量名,它们代表不同的对象,互不干扰。( 对 )
三、 多项选择题
1、关于C语言的描述,正确的有(ABC )。
A、 C语言是学习其它语言的基础
B、 既可以编写系统软件,又可以编写应用程序
C、 语法限制不太严格,程序设计自由度大
D、 执行效率高,但可移植性不太好X
2、一个C语言程序是由( B )。
A、 一个主程序和若干子程序组成
B、 函数组成
C、 若干过程组成
D、 若干子程序组成
3、下列属于C语言关键字的有( ABC )。
A、double B、void C、return D、file
4、一个c程序的执行是从( D )。
A、main()函数开始,直到最后一个函数结束
B、第一个函数开始,直到最后一个函数结束
C、第一个语句开始,直到最后一个语句结束
D、main()函数开始,直到main()函数结束
5、设n=10,i=4、则赋值运算n%=i+1执行后,n的值是(A)。
A、0 B、3 C、2 D、1
6、逗号表达式(a=3
5,a
4),a十15的值为( C )。
A、15 B、60 C、30 D、不确定
7、算法的特征有( ABCD )。
A、有穷性 B、确切性 C、必须有输出 D、可以无输入
8、设X,Y均为FLOAT变量,则以下不合法的赋值语句是( B )。
A、++x;
B、y=(x%2)/10;
C、x*=y+8;
D、x=y=10;
9、当调用函数时,实参是一个数组名,则向函数传送的是( C)。
A、数组的长度
B、数组每一个元素的地址
C、数组的首地址
D、数组每个元素中的值
10、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( D )。
A、x && y 'x’和’y’在ASCII码中其值都为非0值,所以其值为1。
B、x<=y真为1
C、x||y+z&&y-z同A
D、!((x<y)&&!z ||1)
11、关于C语言标识符的命名规则,不正确的有(AB )。
A、 以字母、下划线、数字开头
B、 不区分大小写字母
C、 标识符不能是关键字
D、 标识符的长度有限制
12、下列属于C语言的数据类型的有( abcd )。
A、实型 B、数组型 C、指针类型 D、空类型
13、以下正确的说法是( a )。
A、如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效
B、在该函数中有效
C、在本程序范围内均有效
D、非法变量
14、若有说明:int a[3][4];则对a数组元素的非法引用是(d )。
A、a[0][21] B、a[1][3] C、 a[4-2][0] D、 a[0][4]
15、若有说明:int a[3][4]={0};则下面正确的叙述是( d )。
A、 只有元素a[0][0]可得到初值0
B、此说明语句不正确
C、数组a中各元素都可得到初值,但其值不一定为0
D、数组a中每个元素均可得到初值0
16、下列属于算术运算符的有( a )。
A、 + B、<< C、+ = D、++
17、在C语言中,( b )。
A、函数定义可以嵌套,但函数调用不能嵌套
B、函数定义不可以嵌套,但函数调用可以嵌套
C、函数定义和调用均不能嵌套
D、函数定义和调用均可以嵌套
18、若有语句int point,a=4;和point=&a; 下面均代表地址的一组选项是( D )。
A、a,point,
&a B、&a,&a, point
C、
&point,*point,&a D、&a,&*point,point
19、关于if…else语句和switch语句的说法正确的有( AC )。
A、 所有的switch语句都可以用if-else语句来替换
B、 所有的if-else语句都可以用switch语句来替换
C、 switch语句相对于if…else来说执行效率更高
D、 if…else语句相对于switch来说执行效率更高
20、关于循环语句的说法,错误的有( CD )。
A、 while和do-while循环只在while后面指定循环条件
B、 for循环在表达式3中包含使循环趋于结束的操作
C、 for语句不需要实现循环变量的初始化
D、 while循环、do-while循环可以用break语句跳出循环,但for循环不能用break语句跳出循环
21、下列对数组初始化语句正确的有( ABCD )。
A、 int a[10]={0,1,2,3,4,5,6,7,8,9};
B、 int a[10]={0,1,2,3,4};
C、 int a[10]={0};
D、 int a[ ]={1,2,3,4,5};
22、关于函数的说法,正确的有( AD )。
A、一个C程序必须有主函数
B、主函数可以被其他函数调用
C、函数调用时不能嵌套调用
D、函数定义时不能嵌套定义
23、C语言中供用户使用的存储空间有( ACD )。
A、程序存储区
B、常量存储区
C、静态存储区
D、动态存储区
24、C语言允许将局部变量的值放在CPU中的寄存器中,即“寄存器变量”,用关键字( B )作声明。
A、static B、register C、auto D、extern
25、关于指针的说法,正确的有(ACD )。
A、专门用于存放另一个变量的地址的变量,称为指针变量
B、指针变量可以用于保存变量的地址,也可以赋予任何其他数据
C、可以把一个数值直接赋予指针变量
D、指针支持动态数据结构
26、关于结构体类型数据的说法,不正确的有(B )。
A、结构体类型数据,可以将不同类型的数据组合成一个有机的整体
B、可以整体进行输入和输出结构体变量

C、结构体变量的成员可以像普通变量一样运算
D、可以引用结构体变量成员的地址,也可以引用结构体变量的地址
27、关于"共用体"类型结构的说法,正确的有(AB )。
A、使用"共用体",可以将几种不同类型的变量存放到同一段内存单元
B、共用体变量的地址和它的各成员的地址是一样的
C、共用体变量所占内存长度是各成员占的内存长度之和
最长成员的长度
D、共用体变量中,所有共用体成员可以同时使用
28、下列属于位运算操作符的有( ABC )。
A、& B、| C、~ D、!
29、下列运算符优先级最高的是( C )。
A、算术运算符 B、关系运算符 C、逻辑非! D、&&
30、C语言语句的分类包括(ABC )。
A、 表达式语句 B、函数调用语句 C、复合语句 D、数据查询语句
C语句可分为以下五类:
1 表达式语句; 2 函数调用语句; 3 控制语句;
4 复合语句; 5 空语句。
31、一个C程序的编译过程是(C )。
A、预处理,编译,连接,汇编
B、预处理,汇编,编译,连接
C、预处理,编译,汇编,连接
D、编译,预处理,汇编,连接
32、下列函数声明形式正确的有( B )。
A、int fn(intx;int y)B、int fn(int x,int y); float fun(int x,int y);
C、intfn(int,int);D、intfn(intx,y);
33、下面的程序B
main()
int x=3;
do {
printf("%d\n",x-=2);
}while(!(–x));!0为真,继续执行
}
A、 输出的是1 B、 输出的是1和-2 C、 输出的是3和0 D、 是死循环

34、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( B)
if(a<b)
if(c<d) x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
A、 1 B、2 C、3 D、6

35、下面程序的运行结果是( D)。
#include<stdio.h>
main()
{int i,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b- ->=0) k++;
}
printf(“%d,%d”,k,b);
}
A、3,-1 B、8,-1 C、3,0 D、8,-2

36、 以下程序的正确运行结果是( C)。
#include <stdio.h>
num()
{extern int x,y;
int a=15,b=10;
x=a-b;
y=a+b;
}
int x,y;
main()
{ int a=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n",x,y);}
A、12,2 B、不确定 C、5,25 D、1,12

37、定义如下变量和数组:
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是(A)。
for (k=0;k<3;k++)
printf(“%d”,a[k][2-k]);
A、3 5 7
B、3 6 9
C、1 5 9
D、1 4 7

38、以下程序输出的结果是(C
void main()
{ int a=5,*p1,**p2;
p1=&a,p2=&p1;
(*p1)++;
printf(“%d\n”,**p2);
}
A、 5 B、 4 C、 6 D、 不确定

39、下面程序段的运行结果是(D )。
char *s=”abcde”;
s+=2; printf(“%d”,s);
A、cde
B、字符’c’
C、字符’c’的地址
D、无确定的输出结果

40、 VC++6.0中以下程序的运行结果是( D.
#include “stdio.h”
main()
{struct data
{int year,month,day;
}today;
printf(“%d\n”,sizeof(struct data));
}
A、6 B、8 C、10 D、12
四、 综合实践题
编写程序,在屏幕上输出阶梯形式的九九乘法口诀表。
#include <stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){

	printf("%d*%d=%d	",i,j,i*j);
	}
		printf("\n");
		
	
}

}

判断输入整数x的正负性和奇偶性。
#include <stdio.h>
void main()
{
int a;
printf(“请?输º?入¨?一°?个?整?数ºy:êo\n”);
scanf("%d",&a);
if(a<0) printf(“该?数ºy为a负o\n”);
else if(a>0) printf(“该?数ºy为a正y\n”);
else printf(“该?数ºy既¨¨不?为a正y,ê?也°2不?为a负o\n”);
if(a%2==1) printf(“该?数ºy为a奇?\n”);
else printf(“该?数ºy为a偶?\n”);
}

“水仙花数”是指一个三位数,它的三个数位数字的立方和这个数的数值相等,编程打印所有的水仙花数。如407=4 +0 +7 。
#include <stdio.h>
void main()
{
int i,a,b,c;
for(i=100;i<1000;i++){
a=i/100; 。
b=i/10%10;
c=i%10;
if(i==aaa+bbb+ccc) printf("%d=%d3+%d3+%d^3\n",i,a,b,c);
}
}

求二维数组中最大元素值a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
#include <stdio.h>
void main()
{
int max,row,colum,i,j;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)

	if(a[i][j]>max){	max=a[i][j];
row=i;
colum=j;
	}
	printf("最Á?大䨮数ºy为a%d;行D数ºy为a%d,列¢D数ºy为a%d\n",max,row,colum);

}

利用递归函数求n!,写出递归函数fact。
提示:n!=1×2×3×……×n
#include <stdio.h>
int main()
{
int n;
printf(“请输入一个数字:\n”);
scanf("%d",&n);
printf("%d!=%d\n",n,fact(n));
}
int fact(int n)
{
if(n0||n1)
return 1;
else
return n*fact(n-1);
}
五、 程序填空题
1、 当运行以下程序时,从键盘出入China#,则下面程序的运行结果是( 5,5 )。
#include<stdio.h>
main( )
{int v1=0,v2=0;
char ch;
while((ch=getchar())!=’#’)
{switch(ch)
{case’a’:
case’h’:
default:v1++;内部没有一个 break ;均是按顺序向下执行,不跳出。

case’o’:v2++;
}
}
printf("%d,%d\n",v1,v2);
}
2、下面程序的输出结果是:(*
**



)。
#include<stdio.h>
main()
{
int i,j;
for(i=4;i>=1;i–)
{
printf("");
for(j=1;j<=4-i;j++)
printf("
");
printf("\n");

}
}
3、下面程序的输出结果是:( 8,17 )。
#include<stdio.h>
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);
}
4、下面程序的输出结果是_day_____:
#include <stdio.h>
main( )
{ char *p=“Wednesday”;
p=p+6;
printf("%s\n",p);
}
5、下面程序的输出结果是__0 1 2 1 2 3 2 3 4____:
#include <stdio.h>
main( )
{ int n[3][3], i, j;
for(i=0;i<3;i++ )
{ for(j=0;j<3;j++ )
{ n[i][j]=i+j;
printf(“%d ”, n[i][j]);
}
}
}

https://blog.csdn.net/weixin_43206161

发布了68 篇原创文章 · 获赞 57 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43206161/article/details/103936130