100分 发表于 2017-9-10 19:30:27

东北大学17秋《高级语言程序设计基础》在线作业123参考答案

17秋学期《高级语言程序设计基础》在线作业1
一、单选题:【20道,总分:100分】
1.若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是(    )。          (满分:5)
    A. *pc代表的是字符串"aaa    B. *pc代表的是字符'a'
    C. pc代表的是字符串"aaa"    D. pc代表的是字符'a'
2.语句while(!y)中的表达式 !y 等价于(    )。          (满分:5)
    A. y==0    B. y!=1
    C. y!=0    D. y==1
3.若有以下程序段:  for(m=1; m<=100; m++)   { scanf("%d", &y);   if(y<0)   continue;   printf("%3d", m);   }正确的描述是(    )。          (满分:5)
    A. 当y<0时整个循环结束    B. y>=0时什么也不输出
    C. printf函数永远也不执行    D. 最多允许输出100个非负整数
4.若有以下程序段: …… int a[]={4,0,2,3,1},i,j,t; for(i=1;i=0 && t>a) { a=a;j--;} a=t; } …… 则该程序段的功能是(    )。          (满分:5)
    A. 对数组a进行插入排序(升序)    B. 对数组a进行插入排序(降序)    C. 对数组a进行选择排序(升序)    D. 对数组a进行选择排序(降序)
5.执行以下程序段后,y的值是(    )。int a[ ]={1, 3, 5, 7, 9}int x=0, y=1, *ptr;ptr=&a;while(!x) { y+=*(ptr+x); x++; }          (满分:5)
    A. 1    B. 2
    C. 4    D. 24
6.若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是(    )。          (满分:5)
    A. a, p, &*a
    B. *&a, &a, *p
    C. &a, p, &*p
    D. *&p, *p, &a"
7.以下正确的说法是(    )。          (满分:5)
    A. 实参和与其对应的形参各占用独立的存储单元
    B. 实参和与其对应的形参共占用一个存储单元
    C. 只有当实参和与其对应的形参同名时才共用存储单元
    D. 形参是虚拟的,不占用存储单元
8.若a、b、c均为int型变量,则执行以下程序段后的输出结果为(    )。b=(a=10,a+5,c=10);printf("a=%d,b=%d,c=%d\n",a,b,c);c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);          (满分:5)
    A. a=10,b=15,c=10a=10,b=5,c=10
    B. a=10,b=10,c=10a=10,b=5,c=10
    C. a=10,b=10,c=10a=10,b=5,c=15
    D. a=10,b=10,c=10a=10,b=5,c=5
9.C语言的编译系统对宏命令的处理是(    )。          (满分:5)
    A. 在对源程序中其它成分正式编译之前进行的
    B. 和C程序中的其它语句同时进行的
    C. 在程序连接时进行的
    D. 在程序运行时进行的
10.若有定义:int a;,则以下对a数组元素地址的正确表示为(    )。          (满分:5)
    A. *(a+1)
    B. *(a+2)
    C. a+3
    D. a
11.下面程序段的输出结果是(    )。int a=023;printf("%d\n",--a);          (满分:5)
    A. 23
    B. 17
    C. 18
    D. 24
12.当正常执行了文件关闭操作时,fclose函数的返回值是(    )。          (满分:5)
    A. -1
    B. 随机值
    C. 0
    D. 1
13.设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是(    )。    for(y=100; x!=y; ++x,y++)      printf("****\n");          (满分:5)
    A. 循环体只执行一次
    B. 是无限循环
    C. 循环体一次都不执行
    D. for语句中存在语法错误
14.若二维数组a有m列,则计算任一元素a在数组中位置的公式为(    )。(假设a位于数组的第一个位置上。)          (满分:5)
    A. i*m+j
    B. j*m+i
    C. i*m+j-1
    D. i*m+j+1
15.下面程序的输出结果为(    )。main(    ){ int a=1,b=0;switch(a){ case 1: switch(b){ case 0: printf("**0**"); break;case 1: printf("**1**");break;}case 2: printf("**2**"); break;}}          (满分:5)
    A. **0**
    B. **0****2**
    C. **0****1****2**
    D. 有语法错误
16.若有以下说明,并且0≤i<10,则(    )是对数组元素的错误引用。int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a, I;          (满分:5)
    A. *(a+i)
    B. a
    C. p+i
    D. *(&a)
17.如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是(    )。          (满分:5)
    A. 该变量只在该复合语句中有效
    B. 该变量在该函数中有效
    C. 该变量在本程序范围内有效
    D. 该变量为非法变量
18.以下程序的运行结果是(    )。# include "stdio.h"main(    ){ struct date { int y,m,d;} today; printf("%d\n", sizeof(struct date));}          (满分:5)
    A. 2
    B. 3
    C. 6
    D. 出错
19.若调用fputc函数输出字符成功,则函数的返回值是(    )。          (满分:5)
    A. 输出的字符
    B. -1
    C. 0
    D. EOF
20.当正常执行了文件关闭操作时,fclose函数的返回值是(    )。          (满分:5)
    A. -1
    B. 随机值
    C. 0
    D. 1
17秋学期《高级语言程序设计基础》在线作业2
一、单选题:【20道,总分:100分】

1.若执行fopen函数时发生错误,则函数的返回值是(    )。          (满分:5)
    A. 随机值
    B. 1
    C. NULL
    D. EOF
2.若用fopen打开一个新的二进制文件,要求文件既能读又能写,则应选用的文件方式字符串是(    )。          (满分:5)
    A. "wb+
    B. "r+"
    C. "rb+"
    D. "ab+""
3.函数rewind(fp)的作用是:使文件位置指针(    )。          (满分:5)
    A. 重新返回文件的开头
    B. 返回到前一个字符的位置
    C. 指向文件的末尾
    D. 自动移至下一个字符的位置
4.C语言程序从main(    )函数开始执行,所以这个函数要写在(    )。          (满分:5)
    A. 程序文件的开始
    B. 程序文件的最后
    C. 它所调用的函数的前面
    D. 程序文件的任何位置
5.在C语言中,一维数组的定义方式为:类型说明符 数组名(    )。          (满分:5)
    A. [常量表达式]
    B. [整型表达式]
    C. [整型常量或整型表达式]
    D. [整型常量]
6.设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是(    )。          (满分:5)
    A. p++;
    B. a--;
    C. b++;
    D. c--;
7.以下为一维整型数组a的正确说明是(    )。          (满分:5)
    A. int a(10);
    B. int n=10,a;
    C. int n; scanf("%d",&n); int a;
    D. #define SIZE 10;int a;
8.以下能对一维数组a进行正确初始化的语句是(    )。          (满分:5)
    A. int a=(0,0,0,0,0);
    B. int a={ };
    C. int a[]={0};
    D. int a=(10*1);
9.若有说明:int a={0};则下面正确的叙述是(    )。          (满分:5)
    A. 只有数组元素a可得到初值0
    B. 此说明语句不正确
    C. 数组a中各元素都可得到初值,但其值不一定为0
    D. 数组a中每个元素均可得到初值0
10.若有以下程序段:  for(m=1; m<=100; m++)   { scanf("%d", &y);   if(y<0)   continue;   printf("%3d", m);   }正确的描述是(    )。          (满分:5)
    A. 当y<0时整个循环结束
    B. y>=0时什么也不输出
    C. printf函数永远也不执行
    D. 最多允许输出100个非负整数
11.设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是(    )。scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);printf("%4d+%3d+%2d+%1d",a, b, c, d);          (满分:5)
    A. 1234123121
    B. 1234123412341234
    C. 1234+1234+1234+1234
    D. 1234+123+12+1
12.若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是(    )。          (满分:5)
    A. a, p, &*a
    B. *&a, &a, *p
    C. &a, p, &*p
    D. *&p, *p, &a"
13.当正常执行了文件关闭操作时,fclose函数的返回值是(    )。          (满分:5)
    A. -1
    B. 随机值
    C. 0
    D. 1
14.如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是(    )。          (满分:5)
    A. 该变量只在该复合语句中有效
    B. 该变量在该函数中有效
    C. 该变量在本程序范围内有效
    D. 该变量为非法变量
15.若执行fopen函数时发生错误,则函数的返回值是(    )。          (满分:5)
    A. 随机值
    B. 1
    C. NULL
    D. EOF
16.若a和b均为int型变量,则执行以下程序断后x的输出是(    )。x=15;y=15;printf("%d\n",x%=(y%=2));          (满分:5)
    A. 0
    B. 1
    C. 6
    D. 12
17.以下程序执行后a的值为(    )。  main(    )  { int a,m=2, k=1, *p=&k;   a=p!=&m;   printf("%d\n",a);  }          (满分:5)
    A. -1
    B. 0
    C. 1
    D. 2
18.以下能对二维数组a进行正确初始化的语句是(    )。          (满分:5)
    A. int a[]={{1,0,1},{5,2,3}};
    B. int a[]={{1,2,3},{4,5,6}};
    C. int a={{1,2,3},{4,5},{6}};
    D. int a[]={{1,0,1},{},{1,1}};"
19.若有定义:int a;,则以下对a数组元素地址的正确表示为(    )。          (满分:5)
    A. *(a+1)
    B. *(a+2)
    C. a+3
    D. a
20.以下判断正确的是(    )。          (满分:5)
    A. char *s="string"; 等价于char *s; *s="string";
    B. char str={"string"}; 等价于char str; str={"string"};
    C. char *s="string"; 等价于char *s; s="string";
    D. char str={"string"}; 等价于char str; *str={"strint"};"
17秋学期《高级语言程序设计基础》在线作业3
一、单选题:【20道,总分:100分】

1.设ch是char类型变量,其值是A,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(    )。          (满分:5)
    A. Z
    B. A
    C. a
    D. z
2.当正常执行了文件关闭操作时,fclose函数的返回值是(    )。          (满分:5)
    A. -1
    B. 随机值
    C. 0
    D. 1
3.若用fopen打开一个新的二进制文件,要求文件既能读又能写,则应选用的文件方式字符串是(    )。          (满分:5)
    A. "wb+
    B. "r+"
    C. "rb+"
    D. "ab+""
4.以下对二维数组a的正确说明是(    )。          (满分:5)
    A. int a[];
    B. float a(3,4);
    C. double a
    D. float a(3)(4);
5.以下不正确的定义语句是(    )。          (满分:5)
    A. double x={2.0,4,0,6,0,8,0,10.0};
    B. int y={0,1,3,5,7,9};
    C. char c1[]={'1','2','3','4','5'};
    D. char c2[]={'\x10','\xa','\x8'};"
6.函数rewind(fp)的作用是:使文件位置指针(    )。          (满分:5)
    A. 重新返回文件的开头
    B. 返回到前一个字符的位置
    C. 指向文件的末尾
    D. 自动移至下一个字符的位置
7.设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是(    )。scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);printf("%4d+%3d+%2d+%1d",a, b, c, d);          (满分:5)
    A. 1234123121
    B. 1234123412341234
    C. 1234+1234+1234+1234
    D. 1234+123+12+1
8.以下程序的运行结果是(    )。  main(    )  { int a=1, k;   for(k=0; k<3; k++)    printf("%4d", f1(a));  }  f1(int x)  { static int z=3, y=0;   y++;   z++;   return(x+y+z);  }          (满分:5)
    A. 6 8 10
    B. 6 6 6
    C. 7 8 9
    D. 7 9 11
9.以下对指针变量的操作中,不正确的是(    )。          (满分:5)
    A. int p, *q; q=&p;
    B. int *p, *q; q=p=NULL;
    C. int a=5, *p; *p=a;
    D. int a=5, *p=&a, *q=&a; *p=*q;"
10.下面程序的运行结果是(    )。 char a="abcdef"; char b="ABC"; strcpy(a,b); printf("%c",a);          (满分:5)
    A. 输出空格
    B. \0
    C. e
    D. f
11.C语言程序从main(    )函数开始执行,所以这个函数要写在(    )。          (满分:5)
    A. 程序文件的开始
    B. 程序文件的最后
    C. 它所调用的函数的前面
    D. 程序文件的任何位置
12.当定义一个结构体变量时系统分配给它的内存是(    )。          (满分:5)
    A. 结构中第一个成员所需的内存量
    B. 结构中最后一个成员所需的内存量
    C. 结构体成员中占内存量最大者所需的容量
    D. 结构体中各成员所需内存量的总和
13.若有以下程序段: …… int a[]={4,0,2,3,1},i,j,t; for(i=1;i=0 && t>a) { a=a;j--;} a=t; } …… 则该程序段的功能是(    )。          (满分:5)
    A. 对数组a进行插入排序(升序)
    B. 对数组a进行插入排序(降序)
    C. 对数组a进行选择排序(升序)
    D. 对数组a进行选择排序(降序)
14.若二维数组a有m列,则计算任一元素a在数组中位置的公式为(    )。(假设a位于数组的第1个位置上)          (满分:5)
    A. i*m+j
    B. j*m+i
    C. i*m+j-1
    D. i*m+j+1
15.下面程序的运行结果是(    )。void prt(int *a){ printf(“%d\n”,++*a);}main(    ){ int b=25; prt(&b);}          (满分:5)
    A. 24
    B. 25
    C. 26
    D. 27
16.系统的标准输入文件是指(    )。          (满分:5)
    A. 键盘
    B. 显示器
    C. 软盘
    D. 硬盘
17.下面程序(    )。(每行程序前的数字为行号) 1 main{} 2 { 3 float a={0.0}; 4 int i; 5 for(i=0;i<3;i++) scanf(%d",&a); 6 for(i=1;i<10;i++) a=a+a; 7 printf("%f\n",a); 8 }          (满分:5)
    A. 没有错误
    B. 第3行有错误
    C. 第5行有错误
    D. 第7行有错误
18.以下程序的输出结果是(    )。main(    ){ int a=0,b=1,c=0,d=20;if(a) d=d-10;else if(!b)if(!c) d=15;else d=25;printf("d=%d\n",d);}          (满分:5)
    A. d=10
    B. d=15
    C. d=20
    D. d=25
19.C语言中字符型(char)数据在内存中的存储形式是(    )。          (满分:5)
    A. 原码
    B. 补码
    C. 反码
    D. ASCII码
20.在C语言中,整数-8在内存中的存储形式是(    )。          (满分:5)
    A. 1111 1111 1111 1000
    B. 1000 0000 0000 1000
    C. 0000 0000 0000 1000
    D. 1111 1111 1111 0111

页: [1]
查看完整版本: 东北大学17秋《高级语言程序设计基础》在线作业123参考答案