C/C++笔试题目大全

题目来自:http://blog.csdn.net/hackbuteer1/article/details/7926592   31

1、以下程序的运行结果是()

int main(void) 
{ 
    printf("%s , %5.3s\n","computer","computer"); 
    return 0; 
} 

A、computer , puter                                    B、computer,  com (补两个空格,输出3个字符)
C、computer , computer D、computer , compu.ter
2、以下程序的功能是()

#include<stdio.h> 
int main(void) 
{ 
    FILE *fp; 
    long int n; 
    fp = fopen("wj.txt","rb"); //  rb 是以二进制形式读。 文件例:123456789
    fseek(fp , 0 , SEEK_END);  // SEEK_END(2)是文件尾,SEEK_CUR(1)是当前位置,SEEK_SET(0)是文件头,0L是偏移字节。
    n = ftell(fp);        //计算到文件头的偏移字节数,(感觉要多1) 例:10  ASKII
    fclose(fp);    
   printf("%ld",n);
 } 

A、计算文件wj.txt内容的字节数
B、计算文件wj.txt的终止地址
C、计算文件wj.txt的起始地址
D、将文件指针定位到文件末尾
3、若输入B,则以下程序运行后的输出结果是()

int main(void)
{
	char grade;
	scanf("%c",&grade);
	switch(grade)
	{
	case 'A':
		printf(">=85");
	case 'B':
	case 'C':
		printf(">=60");
	case 'D':
		printf("<60");
	default:
		printf("error.");
	}
}

A、error.
B、>=60
C、>=85
D、>=60<60error.
4、以下程序的输出结果是()

int power(int x , int y);
int main(void)
{
	float a = 2.6 , b = 3.4;
	int p;
	p = power((int)a , (int)b);
	printf("%d\n",p);
	return 0;
}
int power(int x , int y)
{
	int i , p = 1;
	for(i = y ; i > 0 ; i--)
		p *= x;
	return p;
}

A、27                       B、9                            C、8                                 D、81
5、
以下程序段的输出结果是()

	int p = 1234;
	printf("%2d\n",p);

A、12                       B、34                           C、1234                                D、提示出错、无结果
6、以下程序运行后的输出结果是()

int main(void)
{
	int a;
	char c = 10;
	float f = 100.0;
	double x;
	a = f /= c *= (x=6.5); 
	printf("%d %d %3.1f %3.1f\n",a,c,f,x);
	return 0;
}

A、1     65     1         6.5
B、1     65     1.5      6.5
C、1     65     1.0      6.5
D、2     65     1.5      6.5

7、以下程序的运行结果是()主要考察运算符的优先级

int main(void)
{
	int x , y , z;
	x = 0 , y = 1 , z = 3;
	x = ++y <= x || x+y != z; // ++,<=,!=,||,=

	printf("%d,%d\n",x , y);
	return 0;
}

A、1 ,2                      B、1 , 1                                   C、0,2                              D、0,1
8、以下语句的输出结果是()主要考察逗号表达式

int main(void)
{
	int x = 10 , y = 3 , z;

	printf("%d\n",z = (x%y , x/y));
	return 0;
}

A、4              B、0                 C、3                     D、1
逗号表达式的一般形式:
表达式1,表达式2,表达式3......表达式n
它的值为表达式n的值。
括号表达式要求按顺序逐一计算各个子表达式,并以最后一个子表达式的值作为括号表达式的结果,最后将该结果赋给变量。
printf("%d %d %d",(a,b,c),b,c);
则(a,b,c)是一个逗号表达式,它的值等于c的值。括号内的逗号不是参数间的分隔符而是逗号运算符。括号中的内容是一个整体,作为printf函数的第一个参数。

9、设有语句  char a = '\72'; 则变量a()//  \为转义字符,\072转义为一个八进制数072,也就是十进制数的58 即是 \:  
A、包含2个字符                                          B、说明不合法
C、包含1个字符                                          D、包含3个字符

10、已知数据表A中每个元素距其最终位置不远,为节省时间,应该采用的算法是()
A、直接选择排序
B、堆排序
C、快速排序  // 越有序越好,移动距离越小,速度越快。完全有序时,时间为O(n)
D、直接插入排序
11、以下程序段的运行结果是()

int main(void)
{
	char aa[][3] = {'a','b','c','d','e','f'};
	char (*p)[3] = aa;   // 指针的赋值
	p++;

	printf("%c\n",**p);
	return 0;
}

A、b                        B、a                    C、c                   D、d
12、
在C语言中,下列()是合法的标示符。
A、4x                   B、1P234
C、COUNT            D、short

13、C语言中的标识符只能有字母、数字和下划线三种字符组成,且第一个字符()
A、必须为字母
B、必须为字母或下划线
C、必须不是字母或下划线
D、必须为下划线

14、下面程序的输出是()

int main(void)
{
	enum team { my , your = 9 , his , her = his + 3}; // 编译时直接确定值

	printf("%d %d %d %d\n",my , your , his , her);
	return 0;
}
A、0     9    10   13                B、0     8    11   12
C、0     8    10   12                 D、0     8    12   9
15、
以下程序
int main(int argc, char** argv) 
{
	int n = 0 , i;
	for(i = 1 ; i < argc ; i++)
		n = n * 10 + *argv[i]-'0';
	printf("%d\n",n);
	return 0;
}

经编译链接生成可执行文件tt.exe,若运行时输入以下命令行   tt   12   345   678,则程序运行的输出结果是() // argc=4 (空字符串时,argc=1)
A、136              B、12345              C、12345678               D、12

解析:主函数的第一个参数argc为整型参数,记下从命令行输入参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素分别指向命令行输入的各字符串。在本例中argc的值为4,argv[0]指向字符串“tt”,argv[1]指向字符串“12”,argv[2]指向字符串“345”, argv[3]指向字符串“678”。程序中,通过一个for循环,遍历了后面的三个参数字符串,每次将n自乘10,然后累加argv[i]-‘0’,即第i个参数字符串的首字符减去‘0’。  一个数字字符减去‘0’字符,即可得到这个数字字符的实际数值,因此三次循环的结果是让n的值变为136,故本题应该选择A。
16、若已定义:int a[9],*p = a; 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()

A、++p            B、a+1            C、p+1           D、a++

17、若执行下面的程序时,从键盘上输入5,则输出是()

int main(int argc, char** argv) 
{
	int x;
	scanf("%d",&x);
	if(x++ > 5)
		printf("%d\n",x);
	else
		printf("%d\n",x--);
	return 0;
}
A、7                 B、4                 C、6                 D、5
18、
已知有如下的变量定义,那么第二行的表达式的值是多少() 主要考察运算符的优先级
int main(void) 
{
	int x = 3 , y = 4 , z = 5;
	!(x + y) + z-1 && y + z/2;
	return 0;
}

A、6             B、2               C、0                 D、1
19、
下列运算符函数中,肯定不属于类Value的成员函数是()
A、Value operator/(Value);
B、Value operator-(Value,Value); // 两个操作数已够,无隐含指针const Value *this
C、Value operator+(Value);
D、Value operator*(int);

20、以下关于函数模板和模板函数的描述中,错误的是()
A、函数模板是定义重载函数的一种

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值