参考答案和解析
正确答案: C
解析:
a表示数组a的第一个元素的地址,*p=a则将p指向了数组a的第一个元素的地址,p-a=0,所以a[p-a]即为a[0],p[i]相当于a[i]即a[9],输出第一个结果为11、第二个结果为20。取地址运算符&和取值运算符*互为逆运算,所以*(&a[i]))的值仍为a[i]即a[9],输出第三个结果为20,答案选择C选项。
更多“有以下程序#include main(){ int a[10]={11,12,13,14,15,16,17,18,19,”相关问题
  • 第1题:

    有以下程序:

    include”iostream.h”

    void main()

    {int i=10;

    int j=5;

    cout((j+i++<<endl;}

    的结果为______。


    正确答案:15。
    15。 解析: 考查++运算符的用法,各种运算符的应用,注意++,--。i++为先做与i有关的运算后,i自加 1,而++i是先给i加1再进行与i有关的操作。

  • 第2题:

    有以下程序: include using namespace std; int main() {int i=010,j=10;cout<<(++i)

    有以下程序:

    include <iostream>

    using namespace std;

    int main()

    {

    int i=010,j=10;

    cout<<(++i)<<","<<i--<<end1;

    return 0;

    }

    则该程序运行后的输出结果是【 】。


    正确答案:910
    9,10 解析:本题考核自增运算符和自减运算符的使用以及常量的表示形式。程序中i的值是八进制,代表十进制中的8,++i是在语句运算前自身加1,而j--是在语句运算结束后减1。

  • 第3题:

    有以下程序:includeusing namespace Std;inta;int fun();int main(){ externinta; in

    有以下程序: #include <iostream> using namespace Std; int a; int fun(); int main() { extern int a; int b; a = 100; b = fun(); cout<<b<<end1; return 0; } int fun() { extern int a; return (10*A); } 其程序运行后的输出结果是( )。

    A.100

    B.10

    C.1000

    D.10000


    正确答案:C
    解析:本题考核外部变量的使用。先来了解外部变量:外部变量用关键词extern表示。由于外部变量可以被程序中的所有函数共同访问,其作用域为全局,因此也称为全局变量。对于外部变量而言,“定义变量”和“说明变量”是两个不同的概念。定义a为外部变量是告诉编译程序,a是一个外部变量,并要求系统为a分配一个固定的永久存储空间。a的值在整个程序的运行期间都存在,只有当定义它的程序运行结束时,它的存储空间才释放。外部变量定义后,当程序中的函数要引用外部变量时,应在函数中作引用说明。在此程序中,在第二行定义了一个外部变量a,主函数给外部变量赋的初始值为100,当调用函数fun()时,外部变量a的值传到函数fun()中,因此函数所返回的值为100*10=1000。

  • 第4题:

    有以下程序:include using namespace std;int main (){ int n; cin>>n; if (n++<10)c

    有以下程序: #include <iostream> using namespace std; int main () { int n; cin>>n; if (n++<10) cout<<n<<end1; else cout<<n--<<end1; return 0; } 若执行该程序时从键盘上输入9,则输出结果是( )。

    A.11

    B.10

    C.9

    D.8


    正确答案:B
    解析:程序的功能是从键盘输入一个整数,然后执行if语句的条件表达式“n++10”,表达式“n++10”等价于“n10;n++;”这两条语句。所以输出结果n的值为10。

  • 第5题:

    有以下程序:include main( ){int a=1,b;for(b =1;b <=10;b++){if(a> =8) break; if(a%

    有以下程序:#include <stdio.h>main( ){ int a=1,b; for(b =1;b <=10;b++) { if(a> =8) break; if(a%2 == 1) {a + =5;continue;} a- =3; printf( "% d \n" ,b);}程序运行后的输出结果( )。

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:本题要注意break和continue的区别。continue语句只结束本次循环,继续下一次循环;而break语句则是结束整个循环。本题执行过程如下:a=1,b=1:a>=8不成立,a%2==1成立,执行a+=5,则a=6,继续执行下一次循环;a=6,b=2:a>=8不成立,a%2==1不成立,执行a-=3,则a=3,继续执行下一次循环;a=3,b=3:a>=8不成立,a%2==1成立,执行a+=5,则a=8,继续执行下一次循环;a=8,b=4:a>=8成立,结束整个循环,输出b的值4。

  • 第6题:

    有以下程序#include <stdio.h>#include <stdlib.h>int fun(int t){ int *p; p=(int*)malloc(sizeof(int)); *p=t; return *p;}main(){ int a; a = fun(8); printf("%d\n", a+fun(10));}程序的运行结果是A.0 B.10 C.18 D.出错


    正确答案:C
    本题考查函数的调用。题目给出的程序可以分为两个部分,一个是函数fun,另一个是主函数main。fun函数的功能是输入一个整型变量t,设置一个指向该整型变量的指针p,并将该指针所指向的值返回给main函数。main函数中两次调用了fun函数,第一次变量t的值为8,第二次变量t的值为10,第一次返回值8,使得a=8,第二次返回值10,使得a+fun(10)=18。

  • 第7题:

    有以下程序 include include int fun(int n) {int *

    有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。

    A.0

    B.10

    C.20

    D.出错


    正确答案:C
    解析:malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了—个整型的指针变量p。然后执行语句“*p=n”,使得*p的值为10,并通过返回此值,在主函数中输出a+10的值,即输出20。

  • 第8题:

    有以下程序: include include using namespace std; int main () {char ch[]

    有以下程序:

    include <fstream>

    include <string>

    using namespace std;

    int main ()

    {

    char ch[] = "The end";

    ofstream outstr( "d:\\put.txt", ios_base: :app);

    for (int i = 0; i < strlen( ch ); i++ )

    outstr.put(ch[i]);

    outstr.close();

    return 0;

    }

    程序实现的功能是【 】。


    正确答案:在文件put.txt的尾部追加写入一串字符
    在文件put.txt的尾部追加写入一串字符 解析:解本题的关键是要了解文件打开模式常量ios_base::app的含义。常量ios base::app表示为添加数据而打开文件(总是在文件尾部写),因此上述程序实现的功能就是在文件尾部写入数组ch中字符串。

  • 第9题:

    有以下程序:include include using namespace std;int main ( ){ ofstream

    有以下程序: #include <iostream> #include <fstream> using namespace std; int main ( ) { ofstream ofile; char ch; ofile.open ("abc.txt"); cin>>ch; while (ch!='#' ) { cin>>ch; ofile.put(ch);

    A.程序编译时出错

    B.abc#

    C.abc

    D.#


    正确答案:C
    解析:本题程序的功能是将从键盘终端输入的内容存储到指定的文件中。

  • 第10题:

    有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

    有以下程序,程序执行后,输出结果是【 】

    include<stdio.h>

    void fun(int*A)

    { a[0]=a[1];}

    main()

    { int a[10]={10,9,8,7,6,5,4,3,2,1,},i;

    for(i=2;i>1=0;i-) fun(&a[i]);

    for(i=0;i<10;i++) printf("%d,a[i]);

    printf("\n");

    }


    正确答案:7777654321
    7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

  • 第11题:

    有以下程序: include using namespace std; int main() {int i=1,sum=0;Loop:if(i<=20

    有以下程序:

    include<iostream>

    using namespace std;

    int main()

    {

    int i=1,sum=0;

    Loop:if(i<=20)

    {

    sum+=i;

    i++;

    goto Loop;

    }

    cout<<sum<<end1;

    return 0;

    }

    该程序运行后的输出结果是【 】。


    正确答案:210
    210 解析:本题是goto跳转语句的应用。程序中,如果满足条件“i=20”,则执行语句“sum+=i;i++;”然后,又跳转到Loop处。直到条件“i=20”不满足。由此可知,此程序的功能是统计1~20的总和,即210。

  • 第12题:

    有以下程序: include using namespace std; int main() {char a[10] = {'1','2','3',

    有以下程序: #include<iostream> using namespace std; int main() { char a[10] = {'1','2','3','4','5','6','7','8','9','0'),*p; int i=8; p=a+i; cout<<p-3<<end1; return 0; } 执行程序后的输出结果是( )。

    A.6

    B.6789

    C.'6'

    D.789


    正确答案:B
    解析:本题考核如何引用数组。解此题需要注意的几点是:没有下标的数组名就是一个指向该数组第1个元素的指针;字符'0'~'9'与数字0~9是不相等:a[i]与*(a+i)所指的是同一个数组元素。根据以上几点可知,本程序实现的功能是把字符'6'以及其后面的字符按字符串形式输出。

  • 第13题:

    有以下程序: include using namespace std; int f(int); int main() {int i;for(i=0;

    有以下程序:

    include <iostream>

    using namespace std;

    int f(int);

    int main()

    {

    int i;

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

    cout<<f(i)<<" ";

    return 0;

    }

    int f(int i)

    {

    static int k=1;

    for(;i>0;i--)

    k+=i;


    正确答案:1 2 5 11 21
    1 2 5 11 21 解析:函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。

  • 第14题:

    以下程序段给数组A的所有元素输入数据,请填空。 include void main () {int a[10],

    以下程序段给数组A的所有元素输入数据,请填空。

    include<iostream. h>

    void main () {

    int a[10], i;

    i=0;

    while (i<10) cin>> 【 】

    }


    正确答案:a[i++]
    a[i++]

  • 第15题:

    有以下程序:include main( ){ unsigned int a; int b=-1;a=b;printf(" % u", a);程序

    有以下程序: #include <stdio. h> main( ) { unsigned int a; int b=-1; a=b; printf(" % u", a);程序运行后的输出结果是( )。

    A.-1

    B.65535

    C.32767

    D.-32768


    正确答案:B
    解析:不同类型的对象进行混合运算时,需要进行数据的类型转换,其转换方向为int→unsigned→long→double。本题程序中的变量b为int型,需要转换为unsigned型。int型变量的数值范围为-32768~32767,最高位为符号位,而unsigned所表示的数的范围为0~65535,它的最高位为数值位。由于内存中是以补码形式存储数据的,所以整型数-1在内存中表示为16个1,最高位的1表示符号为负,将它转换为unsigned类型,即将原符号位的1看成数值,所以得到16个数值1,即65535。

  • 第16题:

    有以下程序:includeusing namespace std;int a;int fun();int main(){externint a;in

    有以下程序: #include<iostream> using namespace std; int a; int fun(); int main() { externint a; int b; a=10; b=fun(); cout<<b<<end1; return 0; } int fun() { extern int a; return(10*a); } 其程序运行后的输出结果是( )。

    A.10

    B.1

    C.100

    D.1000


    正确答案:C
    解析:由主函数main入手,首先定义外部变量a,它的作用域为从变量的定义处开始,到本程序文件的末尾,赋值为10。然后调用fun函数,在fun函数中计算10*a,其中a的作用域为到文件结尾,所以这里的a为10,即10*10。

  • 第17题:

    有以下程序:includeint a=2;int f(int *a){return (*a) ++;}main(){ int s=0;{ int a=

    有以下程序: #include <stdio.h> int a=2; int f(int *a) { return (*a) ++;} main() { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf("%d\n",s) } 执行后的输出结果是( )。

    A.10

    B.9

    C.7

    D.8


    正确答案:C
    解析:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{inta=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义inta=2;使a成为全局变量,main函数中第二个s+=f(&a);语句中的a就是这个全局变量。

  • 第18题:

    有以下程序,其输出结果是()。include using namespace std;int main(){ char a[10]={'

    有以下程序,其输出结果是( )。 #include <iostream> using namespace std; int main(){ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i=8; p=a+i; cout<<p-3<<endl; return 0; }

    A.6789

    B.6

    C.789

    D.'6'


    正确答案:A
    解析:没有下标的数组名是一个指向该数组首元素的指针,本程序实现的功能是将字符“6”及其以后的字符按字符串形式输出。

  • 第19题:

    若有以下程序: include using namespace std; int main() {char str[10];cin>>str;co

    若有以下程序:

    include <iostream>

    using namespace std;

    int main()

    {

    char str[10];

    cin>>str;

    cout<< str<<end1;

    return 0;

    }

    当输入为:

    This is a program!

    那么执行程序后的输出结果是【 】。


    正确答案:This
    This 解析:本题考核C++的标准输入/输出。提取符可以从输入流中读取一个字符序列,即一个字符串。在处理这种字符序列时,字符串被认为是一个以空白字符结束的字符序列。因此,本题得到的输入仅仅是第一个空白符之前的字符序列 This。所以程序最后的输出是This。

  • 第20题:

    有以下程序: include using namespace std; int main() {int x;for(int i=1;i<=100;

    有以下程序: #include <iostream> using namespace std; int main() { int x; for(int i=1;i<=100;i++) { x=i; if (++x%2==0) if (++x%3==0) if (++x%7==0) cout<

    A.39,81

    B.42,84

    C.26,68

    D.28,70


    正确答案:D
    解析:程序最后输出的x值所满足的条件为:x本身能被7整除,(x-1)能被3整除,(x-2)能被2整除。在1~100之间满足条件的x值是28和70。

  • 第21题:

    有以下程序includeusing namespace std;int a;int fun();int main(){extern int a;in

    有以下程序 #include<iostream> using namespace std; int a; int fun(); int main() { extern int a; int b; a=100; b=fun(); cout<<b<<endl; return 0; } int fun() { extern int a; return(10*a); } 其程序运行后的输出结果是( )。

    A.100

    B.10

    C.1000

    D.10000


    正确答案:C

  • 第22题:

    有以下程序include using namespace std;int a;int fun ();int main (){extern int a

    有以下程序#include <iostream>using namespace std;int a;int fun ();int main (){ extern int a; int b; a = 100; b = fun(); cout<<b<<end1; return 0;}int fun{){ extern int a; return (10*a ;} 其程序运行后的输出结果是

    A.100

    B.10

    C.1000

    D.10000


    正确答案:C
    解析:本题考核变量的作用域、生存周期和存储类别(自动、静态、存储器,外部)。先来了解外部变量:外部变量用关键字extern表示。由于外部变量可以被程序中的所有函数共同访问,其作用域为全局,因此也称为全局变量。对于外部变量而言,“定义变量”和“说明变量”是两个不同的概念。定义a为外部变量是告诉编译程序, a是一个外部变量,并要求系统为a分配一个固定的永久存储空间。a的值在整个程序的运行期间都存在,只有当定义它的程序运行结束时,它的存储空间才释放。外部变量定义后,当程序中的函数要引用外部变量时,应在函数中作引用说明。在此程序中,在第二行定义了一个外部变量a,主函数main给外部变量赋的初始值为100,当调用函数fun()时,外部变量a的值传到函数fun()中,因此函数所返回的值为100*10=1000。

  • 第23题:

    有以下程序:include using namespace std;int main(){ int intone; int &rInt=in

    有以下程序: #include <iostream> using namespace std; int main() { int intone; int &rInt=intone; intone=5; rInt=7; cout<<intOne<<","<<rInt<<end1; return 0; } 上述程序执行后的输出结果是( )。

    A.5,7

    B.7,5

    C.5,5

    D.7,7


    正确答案:D
    解析:程序中,引用rim用intone初始化以后,无论改变intOne还是rInt,实际上都是intone,两者的值是一样的。所以执行语句“rInt=7;”后,整型变量intOne、rInt的值都被置为7。

  • 第24题:

    有以下程序: include main( ) {int a,b,d =25; a = d/10%9;b = a&&(-1); prin

    有以下程序: #include <stdio.h> main( ) { int a,b,d =25; a = d/10%9;b = a&&(-1); printf("% d,% d\n" ,a,b); } 程序运行后的输出结果是( )。

    A.6,1

    B.2,1

    C.6,0

    D.2,0


    正确答案:B
    解析:“/”表示整除,“%”表示求余。程序中表达式a=d/10%9的值为25/10%9=2,则b=a&&(-1)=2&&(-1)=1(注意:-1表示真,0表示假),所以a,b的值分别为2,1。