当前位置:首页 » 编程语言 » c语言程序设计考试试题

c语言程序设计考试试题

发布时间: 2023-08-20 05:07:36

c语言程序设计(201803)测试求大佬帮忙!

  1. 选D

  2. 选C;"my name"算上空格一共7个字符,加上结尾的''为8个字符,所以如果m前没有空格,那么答案为C

  3. 选C;p指向a[3]=4的地址,即p及其之后地址中的数值为{4,5,6,7,8,9,10},所以其中第5个数为p[4]=8

  4. 选C

  5. 选D;A错误,字符串应为char型;B错误,数组长度不够;C错误,没有vhst类型;D正确,可看作字符数组,{}内的数值可转为相应的ASCII字符

  6. 选C;字符数组即字符串不能直接通过"="赋值,要使用strcpy函数

  7. 选C;函数实参可以是常量、变量或表达式,该题中逗号表达式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3个实参

  8. 选C;A错误,函数调用时不用指明其参数类型;B错误,fun函数没有返回值,不能赋给k;C正确;D错误,函数调用时不用指明其返回类型

  9. 选A;n++表示先返回n的值,再对n进行自增操作,即先令k=n,再执行n=n+1

  10. 选C;if-else不是循环结构

  11. 选D;aa表示数组首地址,即&aa[0],而不是&aa[1]

  12. 选B

  13. 选B;a[2]=3,a[2]+1=4,所以a[a[2]+1]=a[4]=5

  14. 选C;A错误,除非函数定义在调用语句之后的位置,才需要提前声明;B错误,函数返回值不一定要显示给出,没有返回值类型的默认为整型;C正确;D错误,在类的定义中,当构造函数和析构函数不需要完成操作时可用空函数来表示,但它们又是有意义的

  15. 选B;scanf需指明读入变量的地址,字符串名称c就表示字符串的地址,也即字符数组首元素的地址,不用再加取地址符&

  16. 选A

  17. 选D;同第6题

码字不易,望采纳~

Ⅱ 求一份C语言程序设计的期末考试试题!!!谢谢了

一.
选择题
(共15题,
每题2分,共30分)
1.
定义结构体的关键字是(

A.
union
B.
enum
C.struct
D.typedef
2.
设整型变量a为5,使b不为2的表达式是(

A.
b=a/2
B.
b=6-(--a)
C.
b=a%2
D.
b=a>3?2:1
3.
下面哪一项是不正确的字符串赋值或赋初值的方法(

A.
char
*str;
str=
“china”;
B.
char
str[7]=
{‘c’,
‘h’,
‘i’,
‘n’,
‘a’};
C.
char
str1[]=
“china”,str2[]=“123”;
D.
char
str1[10];
str1=
“china”;
4.
以下对二维数组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}};
5.
选出下列标识符中不是合法的标识符的是(

A.
hot_do
B.
cat1
C.
_pri
D.
2ab
6.
以下说法中正确的是(

A.
C语言程序总是从第一个的函数开始执行
B.
在C语言程序中,要调用的函数必须在main()函数中定义
C.
C语言程序总是从main()函数开始执行
D.
C语言程序中的main()函数必须放在程序的开始部分
7.
若已定义:int
a[9],
*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为(

A.
p+1
B.
a+1
C.
a++
D.
++p
8.
若有说明:
int
i,j=7,
*p=&i;,
则与i=j;
等价的语句是(

A.
i=
*p;
B.
*p=*&j;
C.
i=&j;
D.
i=*
*p;
9.
若变量c为char类型,能正确判断出c为小写字母的表达式是(

A.
‘a’<=c<=
‘z’
B.
(c>=
‘a’)
||
(c<=
‘z’)
C.
(‘a’<=c)
and
(‘z’>=c)
D.
(c>=
‘a’)
&&
(c<=
‘z’)
10.
以下程序的输出结果是(

main()
{
int
a[]={1,2,3,4,5,6,7,8,9},
*p;
p=a;
*(p+3)+=2;
printf(
“%d,%d\n”,*p,*(p+3)
);
}
A.
0,
5
B.
1,
6
C.
1,
5
D.
0,
6
11.
以下程序的输出结果是(

main()
{
int
a=5;
float
x=3.14;
a*=x*(‘E’-
‘A’);
printf(“%f\n”,(float)a);
}
A.
62.000000
B.
62.800000
C.
63.000000
D.
62
12.
以下程序的输出结果是(

#define
f(x)
x*x
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
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
14.
下列程序段的输出结果是


void
main(
)
{
int
k;
for
(k=1;k<5;k++)
{
if(k%2!=0)
printf(
“#”
);
else
printf(“*”)
;
}
}
A.
#*#*
B
.
*#*#
C.
##
D.
**
15.
下列程序执行后输出的结果是(

int
d=1;
fun
(int
p)
{
int
d=5;
d
+
=p
+
+;
printf("%d,",d);
}
main(
)
{
int
a=3;
fun(a);
d
+
=
a
+
+;
printf("%d\n",d);
}
A.
8,
4
B.
9,
6
C.
9,
4
D.
8,
5
二.
填空题(共7题,每空2分,共30分)
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--)
{
m=str[i];
str[i]=
_______________;
str[j-1]=m;
}
printf("the
rotated
string
is
%s\n",_______________);
}

Ⅲ C语言程序设计F卷-

考试试卷(F卷)

——标 准 答 案

计算机程序设计 课程 56 学时 3.5 学分 考试形式: 闭 卷

一、选择题(15小题,每小题2分,共计30分)

1.下面不正确的字符串常量是 A 。

A)'abc' B)"12཈" C)"0" D)" "

2.以下正确的叙述是 D

A)在C程序中,每行中只能写一条语句

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示

D)在C程序中,%是只能用于整数运算的运算符

3.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十ƌ'一Ɖ'后,c2中的值为 A

A)D B)68 C)不确定的值 D)C

4.sizeof(float)是 B :

A)一个双精度型表达式 B)一个整型表达式

C)一种函数调用 D)一个不合法的表达式

5.以下说法正确的是 D :

A)输入项可以为一实型常量,如scanf("%f",3.5);

B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);

D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);

6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 D (注: 表示回车)。

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 AB D)10 20AB

7.请阅读以下程序:

void main()

{int a=5,b=0,c=0;

if(a=b+c) printf("*** ");

e1se printf("$$ ");

以上程序 D :

A)有语法错不能通过编译 B)可以通过编译但不能通过连接

C)输出*** D)输出$$

8.下面程序段的运行结果是 C 。

x=y=0;

while(x<15) {y++;x+=++y;}

printf("%d,%d",x,y);

A)20,7 B)6,12 C)20,8 D)8,20

9.若有说明:int a[3]={0};则下面正确的叙述是 D。

A) 只有元素a[0]可得到初值0

B) 此说明语句不正确

C) 数组a中各元素都可得到初值,但其值不一定为0

D) 数组a中每个元素均可得到初值0

10.在c语言中,引用数组元素时,其数组下标的数据类型允许是_ C _。

A)整型常量 B)整型表达式

C)整型常量或整型表达式 D)任何类型的表达式

11.下面程序段的运行结果是 _ B _。

char c[5]={'a','b','','c',''};

printf("%s",c);}

A)’a’’b’ B)ab C)ab c D)a b

12.以下叙述正确的是 C 。

A) 在C程序中,main函数必须位于程序的最前面

B) C程序的每行中只能写一条语句

C) C语言本身没有输入输出语句

D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误

13.简单变量做实参时,实参与其对应的形参之间的数据传递方式是 C 。

A)双向值传递方式 B)地址传递方式

C)单向值传递方式 D)用户指定传递方式

14.编辑程序的功能是 A 。

A)修改并建立源程序 B)将源程序翻译成目标程序

C)调试程序 D)命令计算机执行指定的程序

15.在C语言中,5种基本数据类型的存储空间长度排列顺序为 C。

A)char<int<1ong int<="float<double </int

C)char<int<=1ong d)char="int=1ong" int<="float<double </int

二、计算表达式(每小题1.5分,共计15分):

设 int x=25,y=-20;float a=102.56,b=50.87;(注意:各式结果不影响后续的题目!)

1.(++y)+(x--) ( 6 )

2.y*=y+=25 ( 25 )

3.x+y>=0?(x-2*y):(x+2*y) ( 65 )

4.(x+y)/2+(int)(a-b)%(int)b ( 3 )

5.x/2+(a-b)/2 ( 37.845 )

6.!(x=a)&&(y=b)&&1 ( 0 )

7.!(a+b-1)||y+x/2 ( 1 )

8.计算(y>=0)&&(++y)后y的值为: ( -20 )

9.printf(“%d”,’102’);结果为 ( 66 )

10.已知’a’的ASCII码为97,则:printf(“%c”,’d’);结果为( d )

三、写出下列程序的的执行结果(每小题5分,共计20分,注意输出格式)

1.#include

Int main()

{ int a=23389,b=45;float x=647.3586,y=13643.5538;

char c1=’A’,c2[]="Hello";

printf("a=%4d,b=%4d ",a,b);

printf("%-9.2f,%9.2f ",x,y);

printf("%o,%x,%u ",b,b,b);

printf("%d,%c ",c1,c1);

printf("%s,%6.4s ",c2,c2);

return 0;

}

2.#include

#define N 10

int main( )

{ int a=1,b=0, i;

for (i=0; i<n span="" i++)

{ printf("%6d%6d",a,b);

printf(" ");

a=b+a;

b=a+b;}

return 0;}

3.#include

int main()

{ int i,j,k=0;

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

{ for(j=2;j<=i-1;j++)

if(i%j==0) break;

if(j==i)

{ printf("%7d",i) ;

k++;

if(k%2==0) printf(" ");

}

}

Return 0;

}

4.#include

int main()

{ int i=16,j,x=6,y,z;static char c[]=”I am a student”;

j=i+++1; printf(“%5d ”,j);

x*=i=j; printf(“%5d ”,x);

x=1,y=2,z=3;

x+=y+=z;

printf(“%5d ”,(z+=x)>y? z++:y++);

x=y=z=-1;

++x||++y||z++;

printf(“%5d,%5d,%5d ”,x,y,z);

printf(“%s,%5.4s ”,c,c);

return 0;

}

四、程序填空(每空1.5分,共计15分)

1.下面程序的功能是:将字符数组s2中的全部字符拷贝到字符数组s1中,不用strcpy函数。

#include

main()

{ char s1[80], s2[80];

int i;

printf("input s2:");

gets(s2) ;

for(i=0;s2[i]!=’’; i++ )

s1[i]=s2[i] ;

s1[i]=’’;

printf("s1: %s ",s1);

return 0;

}

2.输入20个整数,找出其中的最大数及最小数,并求其和值。

#include

int main()

{ int a[20],i,max,min,sum;

printf("input a[0]-a[19]:");

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

scanf(“%d”, &a[i] );

max=a[0]; min=a[0]; sum= a[0] ;

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

{ if(a[i]>max) max=a[i];

if(a[i]<min) span="" min=a[i] ;

sum+=a[i];

}

printf(%d,%d,%d ",max,min,sum);

return 0;

}

3.输入一行字符到字符数组中,将其中的小写字母转化成大写字母,大写字母转化成小写字母,然后输出。

#include

#include

main()

{ char c,str[80];

int i;

gets(str);

for(i=0;(c=str[i])!= ’’ ;i++)

{ if( c>=’A’&&c<=’Z’ ) c=c+32;

else if(c>=’a’&&c<=’z’) c=c-32;

str[i]=c; }

puts( str );

return 0;

}

五、编写程序(每小题10分,共计20分)

(注意:可做在试卷反面)

1.输出100到300之间能被5整除却不能被3整除的所有数之和。

#include

int main()

{ int n,sum=0;

for(n=100; n<=300; n++)

if(n%5==0 && n%3!=0) sum += n;

printf(“%d ”, sum);

return 0;

}

2.编写main函数及一个求x阶乘(x!)的用户自定义函数fun( ),并在主函数中调用该函数求组合数c的值

添加图片注释,不超过 140 字(可选)

#include

int main()

{ long int fun(long int x);

long res, res1, res2, res3,m, n;

scanf(“%ld,%ld”,&m,&n);

res1=fun(m); res2=fun(n); res3=fun(m-n);

res=res1/(res2*res3);

printf(“%ld ”,res);

return 0;

}

long int fun(long int x);

{ long int i, res=1;

for(i=2; i<=x; i++)

res *= i;

return(res);

}

Ⅳ 《C语言程序设计》练习题

一、选择题
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) 2.0 D) 1.0

逗号表达式,先让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{2*3};
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)经过编译解释才能执行

死记

Ⅳ 求解C语言程序设计题

完整的fun函数代码如下:

int fun(STU a[], int n, STU h[]) {

int i, k = 0;

double avg = 0;

for (i = 0; i < n; i++) {

a[i].sum = a[i].s1 * 0.7 + a[i].s2 * 0.3;

avg += a[i].sum; // 先计算总分

}

avg = avg / n; // 再计算平均分

for (i = 0; i < n; i++) {

if (a[i].sum > avg) { // 统计平均分以上的学生

strcpy(a[i].level, "均分以上");

h[k++] = a[i];

}

}

return k;

}

运行结果如下:

可见成功输出了平均分以上的学生信息,望采纳~

Ⅵ c语言,程序设计题,如图

c 语言程序设计练习题 c 语言程序设计练习题 篇一:c 语言程序设计基础单元总结与练习题及答案 答案 单元一程序设计宏观认识 单元总结提升 本...

热点内容
linux反编译jar 发布:2025-02-05 10:46:29 浏览:25
算法激励 发布:2025-02-05 10:45:48 浏览:304
java16进制字符串 发布:2025-02-05 10:38:13 浏览:643
创业团队配置有哪些 发布:2025-02-05 10:37:40 浏览:630
王者键盘怎么设置安卓 发布:2025-02-05 10:32:01 浏览:373
阿里云轻量服务器ip搭建 发布:2025-02-05 10:24:46 浏览:487
编程高精度 发布:2025-02-05 10:22:28 浏览:230
使命召唤如何配置爆炸狙 发布:2025-02-05 10:08:12 浏览:143
java访问共享目录 发布:2025-02-05 10:03:56 浏览:282
行车记录仪存储卡多大合适 发布:2025-02-05 09:35:21 浏览:112