以下程序的输出是()。

struct st { int x; int *y; } *p;
int dt[] = { ,,, };
struct st aa[] = { ,&dt[],,&dt[],,&dt[],,&dt[] };
void main()
{
p = aa;
printf("%d\n", ++(p->x));
}

A、10

B、11

C、51

D、60

答案:C

分析:aa是大小为4的结构体数组,p是一指向该结构体的指针,将数组名aa赋给

p,p将指向数组aa的第一个元素aa[0],p->x其实就是利用指针p来引用aa[0]的成员x,

其值为50,加1后输出的结果为51.故正确答案是C


以下程序的输出是多少?

main() {
int a[] = { ,, };
int *p;
int *q;
p = a;
q = &a[];
printf("%d", a[q-p]);
return ;
}

A、0

B、1

C、2

D、未知

答案:C

分析: 这里q-p的实际运算是:(q的地址值-p的地址值)/sizeof(int),所以为2。


若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句错误的是()

1.p=s; 
2.p=k;
3.p=s[0]; 
4.k=s;

A、124

B、1234

C、12

D、234

答案:A

分析:这道题主要就考指针类型是否一样。
char s[3][10]   s 是数组指针,类型为char (*)[3],所指向的每个数组长度为10;
char (*k)[3]     很明显k就是一个数组指针,类型也为 char (*)[3],但是所指向的每个数组的长度未知;
char *p           类型为char * 指针。
因此,在没有强制类型转换的情况下,只有类型完全相同的指针才能相互复制。
答案:1,2,4

用 C 语言编写的源程序须经过编译连接后,生成扩展名为 .exe 的可执行文件,才能运行。

A、正确

B、错误

答案:B

分析:只有在windows环境下c源程序编译后才会生成.exe的可执行文件,Linux下生成的不是EXE文件。


给定一个数组int arr[] = {3,8,3,9,9,7,7},筛选出其中没有重复的一个数。

方法一、先定义一个动态数组将重复的数据放入动态数组中,然后将原数组与动态数组进行比较,最后筛选出没有重复的数字。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int arr[] = { 3,8,3,9,9,7,7 };//给定的数组
int len = sizeof(arr) / sizeof(arr[0]);//得到数组长度
int value_arr[sizeof(arr) / sizeof(arr[0])];//放置重复数据的数组
//将重复结果放在数组中
int index = 0;
for (int i = 0; i < len; i++)
{
for (int j = i + 1; j < len; j++)
{
bool flag = false;
for (int z = 0; z < len; z++)
{
if (arr[i] == value_arr[z]) {
flag = true;
break;
}
}
if (arr[i] == arr[j] && !flag)
{
value_arr[index++] = arr[i];
break;
}
}
}
//筛选没有重复的数据
for (int i = 0; i < len; i++)
{
bool flag = false;
for (int j = 0; j < len; j++) {
if (arr[i] == value_arr[j])
{
flag = true;
break;
}
}
if (!flag)
{
printf("%d\n", arr[i]);
}
}
system("PAUSE");
return 0;
}

  

方法二、将原数组进行排序,若有重复数据数据则从重复数据之后进行遍历。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int arr[] = { 3,8,3,9,9,7,7 };//给定的数组
int len = sizeof(arr) / sizeof(arr[0]);//得到数组长度
//先给数组进行排序
for (int i = 0; i < len; i++)
{
for (int j = i + 1; j < len; j++)
{
//升序
if (arr[i] > arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
//筛选没有重复的数据
for (int i = 0; i < len; i++)
{
if (i != 0 && i != len - 1 && len > 1) {
if (arr[i] != arr[i - 1] && arr[i] != arr[i + 1]) {
printf("%d\n", arr[i]);
}
}
else if (len == 1)
{
printf("%d\n", arr[0]);
}
else
{
if (i == 0 && arr[0] != arr[1]) {
printf("%d\n", arr[0]);
}
if (i == len - 1 && arr[len - 2] != arr[len - 1]) {
printf("%d\n", arr[len - 1]);
}
}
}
system("PAUSE");
return 0;
}

  


c笔试题的更多相关文章

  1. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  2. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  3. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  4. C#经典笔试题-获取字符串中相同的字符以及其个数

    public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...

  5. flhs笔试题-回家上机实践

    这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入: package org.flhs; import com.google.commo ...

  6. 也许你需要点实用的-Web前端笔试题

    之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...

  7. [c#基础]关于try...catch最常见的笔试题

    引言 在翻看之前总结的常见面试题中,关于try...catch异常处理的还是蛮多了,今天看到这个面试题,也就重新学习一下. try..catch语法 try-catch语句由一个try块后跟一个或多个 ...

  8. js作用域之常见笔试题,运行结果题

    笔试题中经常有运行结果题,而大多体型都是围绕作用域展开,下面总结了几种相关的题: 外层的变量函数内部可以找到,函数内部的变量(局部变量)外层找不到. function aaa() { var a = ...

  9. 【Android】一道Android OpenGL笔试题

    一道Android OpenGL笔试题 SkySeraph May. 5th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sky ...

  10. C/C++ 笔试题

    /////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程 ...

随机推荐

  1. Windows curl开启注意事项

      php.ini 开启curl扩展 设置有时候开启之后,curl还是不行:将php目录下的libssh2.dll复制到apache/bin下.(基本上可以成功) 如果没有开启成功,将php安装目录下 ...

  2. gcc编译链接std::__cxx11::string和std::string的问题

    今天公司的小伙伴遇到一个问题,这里做一个记录. 问题是这样的,他编译了公司的基础库,然后在程序中链接的时候遇到点问题,报错找不到定义. 用到的函数声明大概是这样的: void function(con ...

  3. 考勤打卡机导出的excel考勤时间表如何生成实用的考勤表

    该excel表有如下结构 姓名\日期 周1 周2 周3 周4 周5 张三 7:3518:02 7:3518:02 7:46   17:56 李四 7:3518:02 7:02 18:00 18:02 ...

  4. [转]vscodesvn安装和使用

    原文链接:https://blog.csdn.net/wzh66888/article/details/90145340 1.安装svn插件 2.安装成功后会出现这样的图标 如果没有安装之后不能使用, ...

  5. git rebase命令

    使用git rebase合并多次commit. 当年提交代码后,管理员发现,你的代码不能提交到服务器上,注意原因在于,你的commit中的commit和服务器中的有些commit不在同一时间轴上,即: ...

  6. 012-MySQL 索引添加以及优化说明

    一.索引概述 数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度. 如果查询语句使用索引(通常是wher ...

  7. 【转】模糊测试(fuzzing)是什么

    一.说明 大学时两个涉及“模糊”的概念自己感觉很模糊.一个是学数据库出现的“模糊查询”,后来逐渐明白是指sql的like语句:另一个是学专业课时出现的“模糊测试”. 概念是懂的,不外乎是“模糊测试是一 ...

  8. sqlserver2012 用户指定数据库访问权限

    这样 用户进入的时候 就只能访问指定数据库 点击其他 显示

  9. SSAS 项目部署失败的问题

    在创建SSAS项目过程中,创建数据源.数据源视图.多维数据集.纬度等一切都没有问题.但是在“进程”这一步的时候,发现总是报错,提示如下.OLE DB 错误: OLE DB 或 ODBC 错误 : 用户 ...

  10. RestHighLevelClient查询es

    本篇分享的是es官网推荐的es客户端组件RestHighLevelClient的使用,其封装了操作es的crud方法,底层原理就是模拟各种es需要的请求,如put,delete,get等方式:本篇主要 ...