1. 编写程序,将10个整数2、4、6、。。。。。。20赋予一个数组,然后使用指针输出该数组各元素的值。
#include <iostream>
using namespace std;
int main()
{int a[10],i,*p;
for(p=a,i=0;p<a+10;p++,i++)
*p=2*i+2;
for( p=a;p<a+10;p++)
cout<<*p<<endl;
return 0;
}
2. 把键盘输入的一个大写字符串改为小写字符串并显示出来,其中大小写转换使用用户自定义函数lower()实现。
#include <iostream>
#include <string>
using namespace std;
void lower(char *p)
{char ch;
for(;*p!='\0';p++)
{ ch=*p+32;
cout<<ch;
}
cout<<endl;
}
或
void lower(char *p)
{
for(;*p!='\0';p++)
cout<<char(*p+32);
cout<<endl;
}
int main()
{char ch[100],*p;
cout<<"please input a string:"<<endl;
cin>>ch;
p=ch;
lower(p);
return 0;
}
3. 输入一个字符串,删除其中的所有空格后输出,例如,输入h e l l o,输出hello。
#include <iostream>
#include <string>
using namespace std;
int main()
{char a[100],b[100];
int i,m,j=0;
cout<<"please input a string:"<<endl;
(a,100);
m=strlen(a);
复合赋值运算符的含义 for (i=0;i<m;i++)
{ if (a[i]!=' ')
{b[j]=a[i] ; j++; }
else continue; }
b[j]='\0';
for (j=0;j<strlen(b);j++)
cout<<b[j];
cout<<endl;
return 0;
}
或(不对)
#include <iostream>
#include <iostream>
#include <string>
using namespace std;
int main()
{char a[100],b[100];
int i,m,j=0;
char *p=a,*q=b;
cout<<"please input a string:"<<endl;
(a,100);
for (p=a,i=0;i<strlen(a);i++)
{if (*(p+i)!=' ')
{*(q+j)=*(p+i);j++;}
else
continue;}
*(b+j)='\0';
for (q=b,j=0;j<strlen(b);j++)
cout<<*(q+j);
cout<<endl;
return 0;
}
或:
using namespace std;
int main()
{char a[100];
int i;
char *p=a;
cout<<"please input a string:"<<endl;
(a,100);
for (p=a,i=0;i<strlen(a);i++)
if (*(p+i)!=' ')
cout<<*(p+i);
else continue;
cout<<endl;
return 0;
}1. 从键盘上输入一个字符,输出其对应的ASCII值。
2.有一分段函数写一程序,输入x的值,输出相应y的值。
x (x<1)
y= 2x-1 (1≤x<10) ,
3x-11 (x≥10)
3.编写程序,其功能是:输入一个字符串,将其中的所有数字删除、输出改动后的字符串及其长度,例如输入:ab123df354ADFx193输出abdfADFx 8。
4.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
5.求Fibonacci数列的前40个数,并按照4列一行输出。
6.编一程序,求1!+2!+3!+…+10!之和。
7.编一程序,将输入数据按小于10,10~99,100~999,1000 以上分类并显示。例如,输入358时,显示358 is 100 to 999。
8.编一程序,求满足如下条件的最大的n 。
12+22+32+…+n2≤1000
9.编程求100以内的偶数之和。
10.用冒泡法对10个整数排序。
11.两个函数,分别求两个整数的最大公约数和最小公倍数,用main函数调用这两个函数,并输出结果,两个整数由键盘输入。
12.利用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值。
一、单项选择题(每小题2分,共50分)
1.根据C++语言的语法规则,下列选项中,( ) 项是不合法的标识符。
A ) day B) radius C) $abc D) y_1
2.执行int a=10,ch=’2’,b=5; 后,表达式(ch>’C’ && a && a>=b)的值是( )。
A) 0 B) “假” C) 1 D) “真”
3.设有int a=5,d;语句,则执行语句d=1.1*30/++a后,d的值是( )。
A ) 6 B ) 5 C ) 6.6 D ) 5.5
4.下面有关编译预处理命令的说法,哪个是错误的( ) ?
A ) 编译预处理命令可以提高编程效率 B ) C++编译预处理命令包括宏定义命令
C ) 在一行中可写多条编译预处理命令 D ) 编译预处理命令不是C++的语句
5.下面关于C++程序书写格式的说法哪个是错误的( )?
A ) 一般一行写一条语句 B ) 一行可写多条语句
C ) 一条语句可以写在多行上 D ) 一行必须写一条语句
6.已知:int a[10],*p,b; 下面( )是合法的。
A) a[10]=10 B) b=a[10] C) a = p D) p=a
7. 有以下语句: int x[]={2,4,6,8,10},*p;p=x;则对数组元素的不正确引用是( )。
A)(*p)++ B) *(p--) C) x[6] D) *(++p)
8、C++语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。
A) 必须为字母。 B) 必须为下划线
C) 必须为字母或下划线 D) 可以是字母、数字和下划线中中任意一种字符。
9. 设int a = 10, b = 11, c = 12;表达式( a + b ) < c && b ! = c的值是( )
A) 2 B) 0 C)-2 D) 1
10.设有数组定义:char array[10]=”computer”; 则数组所占的空间为( )。
A) 10个字节 B) 9个字节 C) 8个字节 D) 7个字节
11.下列关于复合赋值运算符的描述,( )是错误的。
A) a-=7等价于a=a-7 B) a*=b+5等价于a=a*b+5
C) a/=b-3等价于a=a/(b-3) D)使用复合赋值运算符可以提高计算速度
12. 变量的指针,其含义是指该变量的( )。
A)值 B)地址 C)名 D)一个标志
13. 下列数组定义中,会产生错误的是( )
A) int a[] = {‘0’,’1’,’2’,’3’,’4’,’5’,’6’};
B)int a[10] = {1,2,3,4,5,6};
C)char a[5] = “hello”;
D) char a[5] = {‘h’,’e’,’l’,’l’,’o’};
14. 若有说明“int a[3][4]={0};”,则下面正确的是( )
A ) 只有元素a[0][0]可得到初值0
B )此说明语句不正确
C )数组a各元素都可得到初值,但其值不一定是0
D ) 数组a中每个元素均可得到初值0
15. 以下不能正确定义二维数组的语句是( )。
A)int a[2][2]={{1},{2}}; B)int a[ ][2]={1,2,3,4} ;
C)int a[2][ ]={{1,2},{3,4}}; D)int a[2][2]={{1},2,3};
16. 有以下程序:
int main()
{ int a[][3]={1,4,7,2,5,8,3,6,9};
int i,j=2;
for(i=0;i<3;i++)
{ cout <<a[j][i];}
return 0;}
执行结果是( )
int main()
{ int a[][3]={1,4,7,2,5,8,3,6,9};
int i,j=2;
for(i=0;i<3;i++)
{ cout <<a[j][i];}
return 0;}
执行结果是( )
A) 456 B ) 258 C) 369 D) 789
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论