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,其功能是:根据以下公式求π的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)