c语言程序设计的基础题目求教,请给解析(多追积分)

c语言程序设计的基础题目求教,请给解析(多追积分),第1张

1:已知a=13,b=6,a%b的十进制数值为()

a%b,整数%整数,表示求余数,因此13%6=1

2:设x的值为15,n的值为了2,则表达式x%=(n+3)运算后的x的值是()

x%=(n+3)相当于x=x%(n+3),x%=n+3也表示x=x%(n+3),类似的有+=,-=,=,/=

因此x=x%(n+3),x=15%5,x=0

3:int

x=y=4,z=2;x=y==z;则x的值为()

x=y=4,等号是右结合的,也就是这种情况下要从右向左计算,因此相当于y=4;x=y;

而x=y==z,==的优先级比=高,因此相当于x=(y==z),y=4,z=2所以y==z不成立,所以y==z这个表达式的值是false,也就是0,所以x=0

4:若有定义:int

a=10,b=9,c=8;接着顺序执行后下列语句是,变量b中的值是()

c=(a-=(b-5));

c=(a%11)+(b=3);

由上面的几题为基础,

c=(a-=(b-5))相当于c=(a=a-(b-5)),c=(a=10-(9-5)),c=(a=6),所以a=6,c=6,b=9(表达式b-5并没有改变b的值)

c=(a%11)+(b=3)相当于,c=6%11+3=6+3=9,所以a=6,c=9,b=3

5:int

x=2,y=2,z=0;则表达式的x==y>z的值为()

x==y>z这个一个复合逻辑表达式,>优先级高于==,所以相当于x==(y>z),y>z成立,所以y>z==1,x==1不成立,所以表达式的值为0

6:若有以下定义和语句int

a[4]={0,1,2,3},p;

p=&a[2];则--p的值是()

p=&a[2];表示p是a[2]的地址

--p相当于(--p),就是先将p减1,也就是a[1]的地址,然后用 *** 作符取出地址中的值,也就是1

ACM/ICPC以团队的形式代表各学校参赛,每队由3名队员组成。每位队员必须是入校5年内的在校学生,每年最多可以参加2站区域选拔赛,一生最多可以参加2次全球总决赛和5次区域选拔赛。

比赛期间,每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种编写程序解决7-13个问题。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球,每道题目第一支解决掉它的队还会额外获得一个“FIRST PROBLEM SOLVED”的气球。

最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。例如:A、B两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:00和2:45,B队为1:20和2:10,但B队有一题提交了2次。这样A队的总用时为1:00+2:45=3:45而B队为1:20+2:10+0:20=3:50,所以A队以总用时少而获胜。

与其它计算机程序竞赛(例如国际信息学奥林匹克,IOI)相比,ACM/ICPC的特点在于其题量大,每队需要5小时内完成8道题目,甚至更多。另外一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。因此除了扎实的专业水平,良好的团队协作和心理素质同样是获胜的关键。

double fun ( double eps)

{

double s=10,s1=10;

int n=1;

/Program/

double i=10,sum=10;

while(i>eps)

{i=10/(2n+1);

 if(n%2)sum-=i;

   else sum+=i;

 n++;

}

sum=4;

return sum; 

/ End /

}

一、选择题

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)经过编译解释才能执行

死记

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

1 定义结构体的关键字是( )

A union B enum Cstruct Dtypedef

2 设整型变量a为5,使b不为2的表达式是( )

A b=a/2 B b=6-(--a) C b=a%2 D b=a>32: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=314;

a=x(‘E’- ‘A’);

printf(“%f\n”,(float)a); }

A 62000000 B 62800000 C 63000000 D 62

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 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=31415927; 则 printf(“%54f”, 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语言程序设计的基础题目求教,请给解析(多追积分)全部的内容,包括:c语言程序设计的基础题目求教,请给解析(多追积分)、ACM程序设计大赛的竞赛规则、【程序设计】 题目:编写函数fun,其功能是:根据以下公式求π的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9472672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存