一、填空题
1、C语言中基本的数据类型有:______、______ 、______
2、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______
3、整数-35在机内的补码表示为______
4、执行下列语句int a=8; a+=a-=aa; 后,a的值是______
5、有如下语句:char A[ ]={“I am a student”}; 该字符串的长度是______,A[3]=______
6、符号“a”和‘a’的区别是______
7、所谓“指针”就是______“&”运算符的作用是______“”运算符的作用是______
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是______
二、选择题
1、设整型变量a为5,使b不为2的表达式是( )。
A b=a/2 B b=6-(——a) C b=a%2 D b=a>3?2:1
2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( )组成配对关系。
A 缩排位置相同的if B 在其之前未配对的if
C 在其之前未配对的最近的if D同一行上的if
3、以下程序的输出结果是( )。
int x=10,y=10;
printf(“%d %d\n”,x——,——y);
A 10 10 B 9 9 C 9 10 D 10 9
4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
AP+i2 B P+(i-1)2 C P+(i-1) D P+i
5、选出下列标识符中不是合法的标识符的是( )。
A hot_do B cat1 C _pri D 2ab
6、以下程序的输出结果是( )。
int a=5;
float x=314;
a=x(‘E’ - ‘A’);
printf(“%f\n”,(float)a);
A 62000000 B 62800000 C 63000000 D 62
7、设有说明double(p1)[N];其中标识符p1是( )。
A N个指向double型变量的指针。
B 指向N个double型变量的函数指针。
C 一个指向由N个double型元素组成的一维数组的指针。
D具有N个指针元素的一维指针数组,每个元素都只能指向double型量。
8、在C程序中有如下语句:char func(int x,int y);它是( )。
A 对函数func的定义。 B 对函数func的调用。
C对函数func的原型说明。 D 不合法的。
9、以下程序的输出结果是( )。
char str[15]=“hello!”;
printf(“%d\n”,strlen(str));
A 15 B 14 C 7 D 6
10、分析以下程序的输出结果是( )。
main()
{int a=5,b=-1,c;
c=adds(a,b);
printf(“%d”,c);
c=adds(a,b);
printf(“%d\n”,c); }
int adds(int x,int y)
{static int m=0,n=3;
n=++m;
m=n%x+y++;
return(m); }
A 2,3 B 2,2 C 3,2 D 2,4
11、下列描述中不正确的是( )。
A 字符型数组中可能存放字符串。
B 可以对字符型数组进行整体输入、输出。
C 可以对整型数组进行整体输入、输出。
D 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
12、以下程序的输出结果是( )。
#define f(x) xx
main()
{int a=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A 9 B 6 C 36 D 18
13、设有如下定义: int x=10,y=3,z;
则语句printf(“%d\n”,z=(x%y,x/y)); 的输出结果是( )。
A 1 B 0 C 4 D 3
14、定义如下变量和数组:int i;int 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 1 5 9 B 1 4 7 C 3 5 7 D 3 6 9
15、以下对二维数组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}};
16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。
int x;
scanf(“%d”,&x);
if(x++>5) printf(“%d”,x);
else printf(“%d\n”,x - -);
A 7和5 B 6和3 C 7和4 D 6和4
17、设有如下定义: char aa[2]={“abcd”,“ABCD”}; 则以下说法中正确的是( )。
A)aa数组成元素的值分别是“abcd”和ABCD“
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址
18、下列程序的输出结果是( )。
char p1=“abcd”, p2=“ABCD”, str[50]=“xyz”;
strcpy(str+2,strcat(p1+2,p2+1));
printf(“%s”,str);
A xyabcAB B abcABz C ABabcz D xycdBCD
19、下列程序的输出结果是( )。
int a[5]={2,4,6,8,10},P, k;
p=a; k=&p;
printf(“%d”,(p++));
printf(“%d\n”, k);
A 4 4 B 2 2 C 2 4 D 4 6
20、不能把字符串:Hello!赋给数组b的语句是( )。
A char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};
B char b[10]; b=“Hello!”;
C char b[10]; strcpy(b,“Hello!”);
D char b[10]=“Hello!”;
三、读程序题
1、float f=31415927;
printf(“%f,%54f,%33f”,f,f,f);
则程序的输出结果是
2、int x=6, y=7;
printf(“%d,”,x++);
printf(“%d\n”,++y);
程序的输出结果是
3、a=3;
a+=(a<1)?a:1;
printf(“%d”,a);
结果是
4、for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3; continue;}
b-=5; }
程序的输出结果a的值为
5、int y=1, x, p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++)
y + = (p + x);
printf(“%d\n”,y);
程序的输出结果y的值是
四、程序填空题
1、从键盘上输入10个数,求其平均值。
main()
{int i;
float f,sum;
for(i=1,sum=00;i<11;i++)
{ ;
; }
printf(“average=%f\n”,sum/10); }
2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include
main()
{ FILE fp;
char c;
fp= ;
do{
c=getchar();
fputs(c,fp);
}while(c!=EOF);
}
3、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{ float x,amax,amin;
scanf(“%f”,&x);
amax=x; amin=x;
while( )
{ if(x>amax) amax=x;
if( ) amin=x;
scanf(“%f”,&x); }
printf(“\namax=%f\namin=%f\n”,amax,amin); }
五、编程题
1 三个整数a、b、c,由键盘输入,输出其中的一个数。
2输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)
3请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0A的值由主函数从键盘读入。
4有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩的学生信息,包括学号、性别、姓名和平均成绩。
一、选择题
1、C语言规定,在一个源程序中,main()函数的位置(C )。
A) 必须在最开始 B)必须在最后
C) 可以任意 D) 必须在系统调用的库函数后面
这题你死记就行,你看看这个
任何一个C++程序都必须定义一个main函数,它的返回类型总是int类型。这个函数由 *** 作系统来调用,在main函
数执行完以后,程序也就终止了。 main也可以使用return向 *** 作系统返回一个值,使用 *** 作系统的命令可以检测
main的返回值。一般约定在main返回0时,表示程序运行过程中没有出现错误,其它非零值表示程序出现异常情况。
若没有为main指定返回值,这样返回值是任意的。
2、若x和y都是int 型变量,x=100,y=200,且有以下程序段,printf(“%d”,(x,y));则其输出结果是( A)。
A) 200 B) 100 C) 100 200 D) 输出不确定值
(x,y)这是个逗号表达式,表达式的值为最后一个逗号后面表达式的值,因为前面有一个%d,所以输出 的是y的
值
3、合法的C语法字符常量是(C )。
A) “A” B) 65 C) ‘\t’ D) A
字符都是由两个单引号括起来的,死记, a)为字符串
4、表达式“3!=4”的值是(A )。
A) 1 B) 0 C) T D) F
!=是c语言的逻辑运算符,3!=4为真,多以得1, 3=4为假,值为0
5、 int a=1,b=2,c=3,d=4,执行下列程序后x的值为( C)。
if(a>b) x=1;else if (c>d) x=2;else x=3;
A) 1 B) 2 C) 3 D) 4
如果a>b,1>2为假,不执行x=1,执行else if(c>d),判断:3>4为假,不执行x=2,执行=3,完
6、以下程序的输出结果是(D)。
Int x=10,y=3,z;printf(“%d\n”,z=(x%y,x/y));
A)1 B) 0 C) 4 D) 3
逗号表达式,x%y,10%3,商3余1,模取余数1,x/y,10/3,商3余1,除法取商3,逗号表达式,表达式的值为最后一
个逗号后面表达式的值
7、为表示x≥y≥z,应使用C语言表达式(A )。
A) (x>=y)&&(y>=z) B) (x>=y) AND (y>=z)
C) (x>=y>=z) D) (x>=y) & (y>=z)
关系运算符,x>=y与y>=z必须是同时成立的,因此要用逻辑运算符&&,&&与的意思
8、合法的数组定义是( a )。
A) int a[ ]=”string”; B) int a[5]={0,1,2,3,4,5};
C) char a=”string”; D) char a[ ]={“01234”};
a不指定数组长度定义,正确
b数组长度为5,就是里面有5个数组元素,多了一个数组元素
c定义a不是数组而是一个变量,素组应该是a[]
d是错的,字符串是这样定义的:char a[ ]={'0','1','2','3','4','\0'};
[4]中数字是数组长度,说明里面有几个元素
9、设x和y均为int型变量,则语句“x+=y;y=x-y;x-=y;”的功能是(D)。
A) 把x和y按从小到大排列 B)把x和y按从大到小排列
C)无确定结果 D)交换x和y中的值
x+=y等同于x=x+y,把x加y的值赋给x,x现在存的是x与y的和
y=x-y把x减y的值赋给y,x现在存的是x与y的和 (x+y)-y=x,把x的值给y,y存x的值
x-=y等同于x=x-y,把x减y的值赋给x,(x+y)-y=x,现在的后面的y存的是x的值,做完后x里存的值是y,完成交换
10、若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是(C)。
A) 1 B)2 C) 20 D) 10
逗号表达式,先让x=1在算y=x+3/2,得2,因为是double类型,所以有小数点
11、下列条件语句中,功能与其他语句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);
a 如果a为真输出x,如果a为假输出y
b 如果a==0,也就是为假,输出y,a为真输出x,同a
c 如果a!=0为真,输出x,a为假输出y同上
d 如果a为假输出x,如果a为真输出y,与以上的都不同
12、以下能正确定义二维数组的是 (C)
A) int a[][3]; B) int a[][3]=2{23};
C) int a[][3]={0}; D) int a[2][3]={{1},{2},{3,4}};
a 没有给数组赋初值
b {}里不能有
c 正确,记住第一个[]中可以为空,第二个[]不能为空,死记
d a[2][3] 的意思是有两个一维数组,每个一维数组里有3个元素,{{1},{2},{3,4}}; 她的意思是三个数组,{}中的每一个{}代表一个数组,里边的数为数组元素
13、用C语言编写的代码程序 (B)
A)可立即执行 B)是一个源程序
C)经过编译即可执行 D)经过编译解释才能执行
死记
main()
{
int a=100,x =10,y=20,okl=5,ok2=0;
if (x<y)
{
if(y ! =10)
{
if(!okl) a=1;
}
}
else if(ok2)
{
a=10;
}
a=-1:
printf( "%d\n",a ) }
这样看明白了吗
也就是说 不全前面怎么走 到了 a=-1: 的时候a的值都会变成-1
1 一条简单语句是以_____;___字符作为结束符的,一条复合语句是分别以___{_____字符和_____}___字符作为开始符和结束符的。
2 任何一个C++程序至少且只能包含一个_____主___函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由 函数头 和 函数体 两部分组成。
3 C++头文件和源程序文件的扩展名分别为 h 和 cpp。
4 cout与 *** 作符__<<_配合使用才能显示输出,cin与 *** 作符_>>_配合使用才能实现输入。
5 数据类型int,char,bool,float,double, int 等的类型长度分别为___4_、1_、_1_、_4、_8___和_____4___。
6 数值常量46、0173和0x62对应的十进制值分别为_____46___、____123____和______98__。
7 字符串”It\’s\40a\40C++programe!”中包含有______19____个字符。
8 若x=5,y=10,则计算y=++x表达式后,x和y的值分别为____6____和____60____。
9 若x=25,则计算y=x--表达式后,x和y的值分别为____24____和__25______。
10 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为___4_____和_____1___。
11 假定x=64,y=88,则x<<2和y>>2的值分别为____128____和___44_____。
12 假定x是一个逻辑量,则x&&true的值与_____x___的值相同,x||false的值也与_____x___的值相同。
13 假定x是一个逻辑量,则x&&!x和x||!x的值分别为____0____和____1____。
14 假定x=10,则表达式x<=1020:30的值为____20____。
15 表达式sqrt(81)和pow(6,3)的值分别为________9______和_________216_____。
16 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为___(1+x)sin(48314159/180)_____和_____apow(x,b)exp(x+1)___。
17 逻辑表达式:a>=x||b>2y+10的相反式为:___~(a<=x&&2y+10)_____。
18 在嵌套的if语句中,每个else关键字与它前面最接近的____if____关键字相配套。
19 在for语句中,假定循环体被执行次数为n,则<表达式1>共被计算____n___次,<表达式2>共被计算____n____次,<表达式3>共被计算____n____次。
20 执行for和while循环时,每次是先进行____条件____的判断,然后再执行____循环___,执行do循环时则相反。
1 一条简单语句是以_____;___字符作为结束符的,一条复合语句是分别以___{_____字符和_____}___字符作为开始符和结束符的。
2 任何一个C++程序至少且只能包含一个_____主___函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由 函数头 和 函数体 两部分组成。
3 C++头文件和源程序文件的扩展名分别为 h 和 cpp。
4 cout与 *** 作符__<<_配合使用才能显示输出,cin与 *** 作符_>>_配合使用才能实现输入。
5 数据类型int,char,bool,float,double, int 等的类型长度分别为___4_、1_、_1_、_4、_8___和_____4___。
6 数值常量46、0173和0x62对应的十进制值分别为_____46___、____123____和______98__。
7 字符串”It\’s\40a\40C++programe!”中包含有______19____个字符。
8 若x=5,y=10,则计算y=++x表达式后,x和y的值分别为____6____和____60____。
9 若x=25,则计算y=x--表达式后,x和y的值分别为____24____和__25______。
10 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为___4_____和_____1___。
11 假定x=64,y=88,则x<<2和y>>2的值分别为____128____和___44_____。
12 假定x是一个逻辑量,则x&&true的值与_____x___的值相同,x||false的值也与_____x___的值相同。
13 假定x是一个逻辑量,则x&&!x和x||!x的值分别为____0____和____1____。
14 假定x=10,则表达式x<=1020:30的值为____20____。
15 表达式sqrt(81)和pow(6,3)的值分别为________9______和_________216_____。
16 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为___(1+x)sin(48314159/180)_____和_____apow(x,b)exp(x+1)___。
17 逻辑表达式:a>=x||b>2y+10的相反式为:___~(a<=x&&2y+10)_____。
18 在嵌套的if语句中,每个else关键字与它前面最接近的____if____关键字相配套。
19 在for语句中,假定循环体被执行次数为n,则<表达式1>共被计算____n___次,<表达式2>共被计算____n____次,<表达式3>共被计算____n____次。
20 执行for和while循环时,每次是先进行____条件____的判断,然后再执行____循环___,执行do循环时则相反。
另外,站长团上有产品团购,便宜有保证
以上就是关于自考“C语言程序设计”模拟试题一全部的内容,包括:自考“C语言程序设计”模拟试题一、《C语言程序设计》练习题、c语言程序设计习题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)